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:
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
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
Postar um comentário