Quer saber como ler e-mails do Outlook utilizando o VBA para automatizar o seu trabalho e colocar todos eles em uma planilha do Excel?
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Nessa aula de hoje vamos te mostrar como ler e-mails do Outlook no Excel. Ou seja, vamos te mostrar como ler e-mails do Outlook com VBA.
Dessa forma você vai poder ler seus e-mails e trazer as informações para dentro do Excel.
Vamos te ensinar como ler e-mails com VBA e já pegar as informações de remetente, destinatário, assunto, data de recebimento e corpo do e-mail.
Então com um único clique você vai conseguir puxar todos os e-mails da sua caixa de entrada do Outlook e registrar tudo dentro do Excel.
Assim pode fazer suas automações para separar e-mails, então fica muito mais fácil para você identificar e-mails do trabalho, ou conteúdo que tenha uma informação específica.
E aí, quer aprender como criar macro para ler e-mails com Excel? Então vamos pra aula que tem bastante conteúdo irado!
Option Explicit
Sub lerEmails()
' Criando a aplicação do Outlook
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
' Criando um Namespace, que seria uma sessão no Outlook
Dim objNSpace As Object
Set objNSpace = objOutlook.GetNamespace("MAPI")
' Cria um objeto com a pasta Inbox do Outlook
Dim minhaPasta As Object
Set minhaPasta = objNSpace.GetDefaultFolder(olFolderInbox)
Dim i As Long
Dim itemPasta As Object
i = 2 'Linha que vai começar preenchendo na planilha
' Percorrer todos os itens dentro da pasta
For Each itemPasta In minhaPasta.Items
If itemPasta.Class = olMail Then
Dim objEmail As Outlook.MailItem
Set objEmail = itemPasta
Cells(i, 1).Value = objEmail.SenderEmailAddress
Cells(i, 2).Value = objEmail.To
Cells(i, 3).Value = objEmail.Subject
Cells(i, 4).Value = objEmail.ReceivedTime
Cells(i, 5).Value = objEmail.Body
Cells(i, 5).WrapText = False
End If
i = i + 1
Next
Set objEmail = Nothing
Set objOutlook = Nothing
Set objNSpace = Nothing
Set minhaPasta = Nothing
End Sub
Comentários sobre a macro lerEmails():
- Vamos começar a sub com uma configuração para o módulo, em si: ativando o modo “Option Explicit”, que significa que seremos obrigados a declarar todas as variáveis usadas no código. Do contrário, seremos alertados com uma mensagem de erro.
- Vamos começar dimensionando uma variável chamada “objOutlook” para receber e representar a aplicação do Outlook
- Vamos “setar” a variável chamada “objOutlook”, que representará o objeto do programa do Outlook que será criado no começo pelo VBA
- Precisaremos criar o chamado de NameSpace, o que seria entendido como a sessão do Outlook aberta: para isso precisaremos também dimensionar uma variável chamada “objNSpace” para representar a sessão do Outlook
- Após definir, vamos setar a variável “objNSpace” para representar o objeto que será o NameSpace chamado de “MAPI”, porque é o único tipo suportado, nesse caso
- Em seguida precisaremos definir uma variável “minhaPasta” como um objeto
- Ela irá receber o objeto que vamos pegar das pastas padrão (default folder, em inglês) do nosso objNSpace, a pasta da caixa de entrada (folder inbox, em inglês)
- Dimensionaremos uma variável “i” auxiliar como Long, que representará um número e outra variável chamada itemPasta como um objeto, usadas a seguir
- A variável “i” vai representar a linha em que as informações vão começar a ser preenchidas na planilha, que no começo será a linha 2 porque na linha 1 temos o cabeçalho
- A partir da estrutura de repetição For Each, vamos percorrer todos os itens dentro da pasta, que no caso serão todos os itemPasta dentro da minhaPasta
- Através de uma estrutura If no VBA vamos verificar se a classe do itemPasta (item analisado) for do tipo e-mail (mail, em inglês)
- Vamos dimensionar uma variável chamada de “objEmail” como o tipo item e-mail (MailItem, em inglês).
- Em seguida vamos definir que o “objEmail” é igual ao “itemPasta”, para facilitar didaticamente
- Até aqui nós conseguimos acessar a caixa de entrada do Outlook, e ler um e-mail dessa caixa de entrada. A partir daqui vamos ler as informações do e-mail, individualmente falando. Observe um exemplo abaixo:
- Então, as informações que vamos pegar de cada e-mail e o registro feito na nossa planilha, serão:
- Na célula da linha representada pela variável “i” e de coluna A (coluna 1) vamos pegar o endereço de e-mail do remetente (SenderEmailAddress)
- Na célula da linha representada pela variável “i” e de coluna B (coluna 2) vamos pegar o endereço de e-mail do destinatário (To)
- Na célula da linha representada pela variável “i” e de coluna C (coluna 3) vamos pegar o assunto do e-mail (Subject)
- Na célula da linha representada pela variável “i” e de coluna D (coluna 4) vamos pegar a data e hora que o e-maiil foi recebido (ReceivedTime)
- Na célula da linha representada pela variável “i” e de coluna E (coluna 5) vamos pegar o corpo do e-mail em si, a mensagem de fato (Body)
- Além de colocar a informação na coluna E, vamos também desativar (False) a quebra automática de linha (WrapText) naquela célula específica, para não desconfigurarmos a altura da linha da nossa planilha com tamanhos de corpos de e-mails diferentes
- Ao pegar as informações desse e-mail, vamos acrescentar uma unidade na variável “i”, pular para a próxima linha na planilha e analisar um possível próximo e-mail, e continuar o processo inteiro novamente
- Assim que se encerrar a passagem de informações, por boas práticas vamos apagar da memória (Nothing) as variáveis objEmail, objOutlook, objNSpace e minhaPasta, para que elas não ocupem espaço de memória enquanto a planilha estiver aberta
- Se encerra o código
Observe um exemplo abaixo:
Quando rodarmos a macro, pelo botão criado, teremos o seguinte resultado:
Repare que a linha 3 preenchida acima tem as informações do e-mail que usamos de exemplo anteriormente.
Conclusão de Como Ler E-mails do Outlook
Vocês pediram e nós atendemos! Nessa aula você viu como ler e-mails do Outlook pelo VBA!
Isso quer dizer que nós utilizamos de macros no VBA para poder fazer essa automação e trazer informações dos seus e-mails para o Excel. Irado, não?
Além disso pudemos rever alguns conceitos no VBA, como: Estrutura de repetição For Each, Estrutura If, Variável no VBA, Objeto no VBA.
Até o próximo post, galera! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA e Excel toda semana! Um abraço!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.