Pode ser necessário que durante o desenvolvimento de uma aplicação para
infinitos fins, como as que desenvolvemos, precisemos interagir com outros
produtos da suíte MS Office. Por exemplo, talvez necessites interagir com
o MS Outlook.
Caso tal necessidade ocorra, é importante que estejamos familiarizados
com este ambiente de desenvolvimento.
Antes de continuar, um pequeno parênteses, deixe seus comentários para este post.
As seguintes situações serão possíveis e totalmente implementáveis:
1. De dentro do seu MS Outlook, acesse uma lista de contatos eseus respectivos e-mails numa base de dados do MS Access e envieum relatório gravado numa planilha comum do MS Excel para todos.2. Programe que em determinada data uma newsletter será enviada apartir da sua máquina para um seleto grupo de Clientes.3. Em associação com uma base de dados, com alguns scripts SQL,envie os relatórios para as diversas filiais da sua empresa logo pelamanhã, certificando-se de que os respectivos e-mails o notifiquemquando forem abertos.4. Após uma apresentação que efetuou num Workshop, envie a suaaprensentação do MS Powerpoint para todas as pessoas que lheenviaram um e-mail com a frase "UMA APRESENTAÇÃO POR FAVOR"escrita no assunto.
Ao contrário do MS Word e do MS Excel, para criarmos o nosso códigono MS Outlook não há um gravador de macro para nos ajudar.Bem, antes de começar certifique-se de que a configuração de segurançade macro esteja definida como Baixa. caso contrário as macrossimplesmente não funcionarão. Mas pensando bem, Baixo não é orecomendado, defina-a como Médio. Para isso, No MS Outlook, vá emFerramentas > Macro > Segurança e mude.Copie o código abaixo:Sub SendMail()
On Error GoTo On_ErrorDim nsSession As Outlook.NameSpaceDim fldFolder As Outlook.MAPIFolderDim itmMail As Outlook.MailItemDim MailRecipient As Outlook.RecipientDim inputTemp As Outlook.RecipientSet nsSession = Application.SessionIf Not nsSession Is Nothing Then
nsSession.Logon , , False, False
Set fldFolder = nsSession.GetDefaultFolder(olFolderOutbox)
If Not fldFolder Is Nothing Then
Set itmMail = fldFolder.Items.Add(olMailItem)
If Not itmMail Is Nothing Then
tmpInput = InputBox("Enter the email Address")
Set oRecipient = itmMail.Recipients.Add(tmpInput)
oRecipient.Type = olTo
Set oRecipient = NothingtmpInput = InputBox("Enter the email Subject")itmMail.Subject = tmpInputtmpInput = InputBox("Enter the email Message")itmMail.Body = tmpInputitmMail.SendSet itmMail = Nothing
End If
Set fldFolder = Nothing
End If
nsSession.Logoff
End If
Exiting:Set nsSession = NothingExit SubOn_Error:MsgBox "err=" & Err.Number & " " & Err.DescriptionResume Exiting
End SubAbra o VBE no Outlook, pressionando o ALT+F11. Dê um duplo clique em ThisOutlookSession.Agora cole o código VBA.