como executar automaticamente uma macro do Outlook?

0

Eu desenvolvi uma macro do Outlook e quero que essa macro seja executada automaticamente sem qualquer prompt ou mensagem do usuário, independentemente de a perspectiva estar ativada ou não.

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
 bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12
Private Const SW_SHOWMAXIMIZED = 3
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_MAXIMIZE = 3
Private Const SW_MINIMIZE = 6
Private Const SW_NORMAL = 1
Private Sub Application_Reminder(ByVal Item As Object)

If TypeName(Item) = "TaskItem" Then
    Dim myItem As TaskItem
    Set myItem = Item
    If myItem.Subject = "run macro Mail_workbook_Outlook_1" Then

        Call Mail_workbook_Outlook_1   '...your macro name here

    End If
End If
End Sub
Sub Mail_workbook_Outlook_1()
    ChDrive ("D:")
    ChDir ("D:\Eclipse\Workspaces\struts\Sonar\src\report")

    'Shell ("cmd.exe /S /K" & "java D:\Eclipse\Workspaces\struts\Sonar\src\reportOpenBrowser")

    'Const exeCmd = "java OpenBrowser"
    'Shell ("java OpenBrowser")

    Dim sdkCommand As String

    sdkCommand = "java Orange "
    Shell ("cmd.exe /c" & sdkCommand)

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = "check"
        .CC = ""
        .BCC = ""
        .Subject = "Orange "
        .Body = "Hi all " _
                & "PFB the status of Sonar report for Trunk"
        .Attachments.Add ActiveWorkbook.FullName
        'You can add other files also like this
        .Attachments.Add ("d:\Orange .jpg")
        .HTMLBody = .HTMLBody & "<br>Orange REPORT:<br>" _
                & "<br><img src='d:\Orange .jpg'" & "width='900' height='600'><br>" _
                & "Orange .<br>" _
                & "google.com" _
                & "<br>Regards,<br>Gaurav</font></span>"
        .Send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub
    
por Gaurav Sood 25.11.2014 / 10:32

2 respostas

1

Você pode usar a opção /autorun :

outlook.exe /autorun <macroname>

Por exemplo, crie o seguinte no Editor do Visual Basic ( Alt + F11 ):

Sub Hello()
    MsgBox "Hello World!"
End Sub

Crie um atalho na sua área de trabalho que tenha como alvo:

"C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE"  /autorun hello

Clique duas vezes no atalho e será recebido com uma mensagem quando você iniciar o Outlook.

Observe que o caminho para outlook.exe pode variar dependendo da sua versão e instalação.

Você também pode definir uma macro Application_Startup que deve ser executada toda vez que o Outlook iniciar:

Private Sub Application_Startup() 

    MsgBox "Welcome, " & Application.GetNamespace("MAPI").CurrentUser 

    Application.ActiveExplorer.WindowState = olMaximized 

End Sub

O texto acima é do site de referência para desenvolvedores da Microsoft .

Você pode ter que definir suas configurações de segurança para que isso funcione:

File -> Options -> Trust Center -> Trust Center Settings -> Macro Settings -> Enable All

Observe que não tenho o Outlook 2010 para confirmar o que está acima: -)

    
por 25.11.2014 / 11:11
0

Isso é impossível. Você não pode executar uma macro do outlook sem executar o outlook, da mesma maneira que você não pode tocar um cd sem o cd-player.

    
por 25.11.2014 / 10:49