Como Ler E-mails do Outlook e Colocar na Planilha com VBA
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
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
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!
Quer aprender mais sobre VBA com um minicurso básico gratuito?
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.
Procure o que você quiser sobre Excel, VBA, Power BI ou Python:
Aprenda tudo de Excel para se tornar uma referência no Mercado de Trabalho
Leve os treinamentos da Hashtag para dentro da sua Empresa