Compartilhar via


Automatizando o Outlook de um aplicativo do Visual Basic

Como o Microsoft Outlook dá suporte à Automação, você pode controlar o Outlook de qualquer programa gravado com o Microsoft Visual Basic. A Automation oferece um método padrão para um aplicativo acessar os objetos, os métodos, as propriedades e os eventos de outros aplicativos que dão suporte à Automation.

O modelo de objeto do Outlook fornece toda a funcionalidade necessária para manipular dados armazenados em pastas do Outlook e fornece a capacidade de controlar muitos aspectos da interface do usuário (interface do usuário) do Outlook.

Para iniciar uma sessão de Automação do Outlook, você pode usar a associação antecipada ou tardia. A associação tardia usa a função GetObject do Visual Basic ou a função CreateObject para inicializar o Outlook. Por exemplo, o código a seguir define uma variável de objeto para o objeto Outlook Application , que é o objeto de nível mais alto no modelo de objeto do Outlook. Primeiro, todo o código de Automação deve definir um objeto do Outlook Application para poder acessar outros objetos do Outlook.

Dim objOL as Object 
Set objOL = CreateObject("Outlook.Application")

Para usar a associação antecipada, primeiro será necessário definir uma referência à biblioteca de objetos do Outlook. Use o comando Reference no menu Ferramentas do Visual Basic for Applications (VBA) para definir uma referência à Biblioteca de Objetos do Microsoft Outlook xx.x, onde xx.x representa a versão do Outlook com que você está trabalhando. Então você poderá usar a sintaxe a seguir para iniciar uma sessão do Outlook.

Dim objOL as Outlook.Application 
Set objOL = New Outlook.Application

A maioria das soluções de programação interagem com os dados armazenados no Outlook. O Outlook armazena todas as suas informações como itens em pastas. As pastas estão contidas em um ou mais repositórios. Depois de definir uma variável de objeto para o objeto Do Outlook Application , você normalmente definirá um objeto NameSpace para se referir a MAPI, conforme mostrado no exemplo a seguir.

Set objOL = New Outlook.Application 
Set objNS = objOL.GetNameSpace("MAPI") 
Set objFolder = objNS.GetDefaultFolder(olFolderContacts)

Depois de definir uma variável de objeto para referenciar a pasta que contém os itens com que você deseja trabalhar, use o código adequado para realizar sua tarefa, como mostrado no exemplo a seguir.

Sub CreateNewDefaultOutlookTask() 
    Dim objOLApp As Outlook.Application 
    Dim NewTask As Outlook.TaskItem 
    ' Set the Application object 
    Set objOLApp = New Outlook.Application 
    ' You can only use CreateItem for default items 
    Set NewTask = objOLApp.CreateItem(olTaskItem) 
    ' Display the new task form so the user can fill it out 
    NewTask.Display 
End Sub

Se você estiver usando VBA para criar macros, há duas maneiras de automatizar o Outlook. Você pode implementar uma macro que cria uma nova instância do objeto Application do Outlook. O CreateNewDefaultOutlookTask() método acima mostra como chamar New Outlook.Application para criar uma nova instância de objeto Application .

Cuidado Essa nova instância do Outlook não é confiável e pode disparar o guarda de modelo de objeto.

Como uma alternativa à criação e à automação de uma instância separada do Outlook, você poderá usar o VBA para implementar uma macro que automatize a instância atual do Outlook. Para fazer isso, use o objeto Application intrínseco ao ambiente. Esse objeto Application é confiável e pode evitar o disparo da guarda do modelo de objeto. For more information about the object model guard, see What's New for Developers in Outlook 2007 (Part 1 of 2). O exemplo a seguir mostra o CreateAnotherNewDefaultOutlookTask() método usando o objeto Application da instância atual do Outlook.

Sub CreateAnotherNewDefaultOutlookTask() 
    Dim NewTask As Outlook.TaskItem 
 
    ' You can only use CreateItem for default items 
    Set NewTask = Application.CreateItem(olTaskItem) 
    ' Display the new task form so the user can fill it out 
    NewTask.Display 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.