Como automatizar o Outlook com o Visual Basic

Traduções de Artigos Traduções de Artigos
Artigo: 220595 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

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:
Reduzir esta tabelaExpandir esta tabela
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

Artigo: 220595 - Última revisão: 7 de novembro de 2006 - Revisão: 9.1
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbautomation kbhowto kboutlookobj KB220595

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com