Como automatizar o Outlook com o Visual Basic

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sumário
Este artigo demonstra como controlar programaticamente o Microsoft Outlook utilizando a automatização do Visual Basic. O exemplo demonstra como criar contactos, criar compromissos e enviar mensagens utilizando o modelo de objectos do Microsoft Outlook.

Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).
Mais Informação
Siga os passos abaixo para criar e executar o exemplo. Para executar o exemplo, necessita de uma referência a uma biblioteca de tipos do Microsoft Outlook ligada em tempo de compilação. A tabela que se segue lista os nomes de ficheiro das bibliotecas de tipos para as diferentes versões do Microsoft Outlook:
Versão do OutlookComo as bibliotecas de tipo são apresentadas na lista de referênciasNome do ficheiro
Outlook 97"Microsoft Outlook 8.0 Object Library"msoutl8.olb
msoutl8.olb"Microsoft Outlook 98 Object Library"msoutl85.olb
Outlook 2000"Microsoft Outlook 9.0 Object Library"msoutl9.olb
Outlook 2002"Microsoft Outlook 10.0 Object Library"msoutl.olb
Office Outlook 2003"Microsoft Outlook 11.0 Object Library"msoutl.olb

Criar o exemplo de automatização

  1. Inicie o Visual Basic e crie um novo projecto executável padrão.
  2. No menu Project, escolha References e seleccione Microsoft Outlook.
  3. Adicione um botão ao formulário.
  4. Faça duplo clique no botão e adicione o seguinte código:
     ' Iniciar o Outlook. ' Se já estiver a ser executado, utilizará a mesma instância...   Dim olApp As Outlook.Application   Set olApp = CreateObject("Outlook.Application")     ' Iniciar sessão. Se esta já estiver iniciada e o Outlook já estiver em execução não há problema.   Dim olNs As Outlook.NameSpace   Set olNs = olApp.GetNamespace("MAPI")   olNs.Logon ' Criar e abrir um contacto novo.   Dim olItem As Outlook.ContactItem   Set olItem = olApp.CreateItem(olContactItem) ' Definir informações de contacto...   With olItem      .FullName = "João Silva"      .Birthday = "15/9/1975"      .CompanyName = "Microsoft"      .HomeTelephoneNumber = "21 440 92 00"      .Email1Address = "alguem@microsoft.com"      .JobTitle = "Programador"      .HomeAddress = "Av. Prof. Doutor Aníbal Cavaco Silva" & vbCr & "2744-010 Porto Salvo"   End With    ' Guardar contacto...   olItem.Save     ' Criar um compromisso novo.   Dim olAppt As Outlook.AppointmentItem   Set olAppt = olApp.CreateItem(olAppointmentItem)     ' Definir a hora de início para 2 minutos a partir de agora...   olAppt.Start = Now() + (2# / 24# / 60#)     ' Definir outras informações relativas ao compromisso...   With olAppt      .Duration = 60      .Subject = "Reunião para discutir os planos..."      .Body = "Reunião com " & olItem.FullName & " para discutir os planos."      .Location = "Escritório da residência"      .ReminderMinutesBeforeStart = 1      .ReminderSet = True   End With     ' Guardar compromisso...   olAppt.Save     ' Enviar uma mensagem ao novo contacto.   Dim olMail As Outlook.MailItem   Set olMail = olApp.CreateItem(olMailItem) ' Preencher e enviar mensagem...   olMail.To = olItem.Email1Address   olMail.Subject = "Sobre a nossa reunião..."   olMail.Body = _        "Caro " & olItem.FirstName & ", " & vbCr & vbCr & vbTab & _        "Reunimos daqui a 2 minutos!" & vbCr & vbCr & _        "Btw: Adicionei-o à minha lista de contactos."   olMail.Send     ' Limpar...   MsgBox "Tudo concluído...", vbMsgBoxSetForeground   olNS.Logoff   Set olNs = Nothing   Set olMail = Nothing   Set olAppt = Nothing   Set olItem = Nothing   Set olApp = Nothing						
  5. Execute o projecto e clique no botão para executar o código.
Quando o código for executado, deverá ter um novo contacto com o nome "João Silva", um compromisso agendado para dois minutos depois com um lembrete para ser apresentado um minuto depois e uma mensagem enviada a alguem@microsoft.com. Além disso, como adicionou uma data de aniversário ao contacto (15/9), foi adicionado um evento periódico ao calendário do Outlook, para o lembrar desse dia.

Estas duas caixas de diálogo são novas no Outlook 2002: uma a avisar que um programa está a tentar aceder a endereços de correio electrónico guardados no Outllook e a perguntar se pretende permitir o acesso e outra mensagem a indicar que o programa está a tentar enviar correio electrónico. Esta funcionalidade irá protegê-lo de ser explorado por um vírus que envie mensagens de correio electrónico a partir do seu sistema.

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
290500 Description of the developer-related e-mail security features in Outlook 2002
Referências
Para obter mais informações sobre recursos de programação do Outlook, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
166368 Resources for custom forms and programming in Outlook 97
180826 Resources for custom forms and programming in Outlook 98
271225 Resources for custom forms and programming in Outlook 2000
287531 List of resources for custom forms and programming with Outlook 2002
313802 How to retrieve contacts by using Outlook object model in Visual Basic .NET
313788 How to create an appointment by using Outlook object model in Microsoft Visual Basic .NET
Propriedades

ID do Artigo: 220595 - Última Revisão: 12/05/2015 13:09:02 - Revisão: 9.1

Microsoft Visual Basic 6.0 Enterprise Edition, Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 6.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Office Outlook 2003, Microsoft Outlook 2002 Standard Edition, Microsoft Outlook 2000 Standard Edition, Microsoft Outlook 97 Standard Edition, Microsoft Outlook 98 Standard Edition

  • kbnosurvey kbarchive kbautomation kbhowto kboutlookobj KB220595
Comentários