sábado, 8 de maio de 2010

Copiar informações de um e-mail no Outlook - VBA

Vou deixar registrado aqui vários trechos de códigos em VBA, para facilitar a consulta. Afinal, basta ter uma conexão com a internet, certo?
Segue abaixo, um exemplo para copiar dados de um e-mail selecionado no Outlook para qualquer outro aplicativo Office.
Detalhes:
- Referenciar o Outlook no projeto VBA;
- O e-mail precisa estar selecionado na caixa de entrada (para este exemplo).

;-)



Option Explicit

Dim oApp As Outlook.Application
Dim oNS As Outlook.NameSpace
Dim oWindow As Object
Dim omail As Outlook.MailItem

Private Sub Comando12_Click()

Set oApp = New Outlook.Application
Set oNS = oApp.GetNamespace("MAPI")
Set oWindow = oApp.ActiveWindow
Set omail = oApp.ActiveExplorer.Selection.Item(1)

txt_remetente = omail.SenderName 'Remetente
txt_cc = omail.CC 'Com cópia
txt_assunto = omail.Subject 'Assunto
txt_mensagem = omail.Body 'Mensagem
txt_para = omail.To 'Destinatário
txt_data = omail.ReceivedTime

End Sub

2 comentários:

Diogo Gomes disse...

Ola Kazu,

Recebo vários emails com o mesmo formato com dados que quero copiar para o excel.
Sei pouco de VBA, mas percebo programação.

Como posso copiar estes dados para o excel: conteúdo da mensagem e a data em que o email foi recebido?

Depois só preciso de tratar a informação no excel...

Obrigado,
Abraço

Kazu disse...

Diogo, boa noite!

Em linhas gerais, fica mais ou menos assim.
Vai depender do conteúdo da mensagem, a forma como o texto está organizado e assim por diante.

abs!


Option Explicit

Dim oApp As Outlook.Application
Dim oNS As Outlook.NameSpace
Dim oWindow As Object
Dim omail As Outlook.MailItem
dim xl_app as Excel.Application

Private Sub Comando12_Click()

set xl_app = new Excel.Application
Set oApp = New Outlook.Application
Set oNS = oApp.GetNamespace("MAPI")
Set oWindow = oApp.ActiveWindow
Set omail = oApp.ActiveExplorer.Selection.Item(1)

xl_app.workbooks.open "C:\sua_pasta.xls"

cells(1,1).value = omail.SenderName 'Remetente
cells(1,2).value = omail.CC 'Com cópia
cells(1,3).value= omail.Subject 'Assunto
cells(1,4).value = omail.Body 'Mensagem
cells(1,5).value = omail.To 'Destinatário
cells(1,6).value = omail.ReceivedTime

End Sub

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.