VBA Excel: Como ler emails do Outlook

A pedido de um dos alunos da Mentoria VBA Excel, fiz um código (bem inicial) para ler os e-mails da sua caixa do Outlook e colocar os dados em uma planilha.

Esse código abaixo, lê todos os e-mails da sua caixa de entrada e coloca na planilha que estiver selecionada as propriedades: “Assunto”, “Data de Recebimento” e “Data de Envio”.

Como disse, é um código bem simples e inicial, usem com moderação 😉


Option Explicit

‘Função para ler os E-Mails de uma pasta
Sub sbLeEmails()

Dim oOutApp As Object           ‘Aplicação Outlook
Dim oFolder As Folder             ‘Objeto pasta do outlook
Dim oItem As Object                 ‘Cada item na pasta
Dim oNamespace As Object   ‘Objeto para capturar o MAPI
Dim contaCelulas As Long     ‘Contador de Célular da Planilha

‘Cria uma nova aplicação outlook
Set oOutApp = GetObject(, “Outlook.Application”)
If oOutApp Is Nothing Then

Set oOutApp = CreateObject(“Outlook.Application”)

End If

‘Ajusta o folder
Set oNamespace = oOutApp.GetNamespace(“MAPI”)
Set oFolder = oNamespace.GetDefaultFolder(olFolderInbox)

‘Inicia o contador de células na primeira linha da planilha
Cells(1, “A”) = “Assunto”
Cells(1, “B”) = “Data Recebimento”
Cells(1, “C”) = “Data Envio”
contaCelulas = 2

‘Para cada email na caixa, colhe a data de envio e recebimento
For Each oItem In oFolder.Items

If TypeName(oItem) = “MailItem” Then

Cells(contaCelulas, “A”) = oItem.Subject
Cells(contaCelulas, “B”) = oItem.ReceivedTime
Cells(contaCelulas, “C”) = oItem.SentOn
contaCelulas = contaCelulas + 1
       

End If

Next

‘Libera memória
Set oOutApp = Nothing
Set oFolder = Nothing
Set oItem = Nothing
Set oNamespace = Nothing

End Sub