Como exportar e-mails de várias pastas / subpastas para o Excel no Outlook?
Ao exportar uma pasta com o assistente de Importação e Exportação no Outlook, ele não oferece suporte ao Incluir subpastas opção se você exportar a pasta para um arquivo CSV. No entanto, será muito demorado e tedioso exportar cada pasta para um arquivo CSV e, em seguida, convertê-lo para uma pasta de trabalho do Excel manualmente. Aqui, este artigo apresentará um VBA para exportar rapidamente várias pastas e subpastas para pastas de trabalho do Excel com facilidade.
Exporte vários e-mails de várias pastas / subpastas para o Excel com VBA
- Automatize o envio de e-mails com Auto CC / BCC, Avanço automático por regras; enviar Resposta automatica (Fora do escritório) sem a necessidade de um servidor Exchange...
- Receba lembretes como Aviso BCC ao responder a todos enquanto você está na lista BCC, e Lembrar quando houver anexos ausentes para anexos esquecidos...
- Melhore a eficiência do e-mail com Responder (todos) com anexos, Adicionar automaticamente saudação ou data e hora à assinatura ou assunto, Responder vários e-mails...
- Simplifique o envio de e-mails com Recuperar e-mails, Ferramentas de Anexo (Compactar tudo, salvar tudo automaticamente...), Remover Duplicados e Relatório Rápido...
Exporte vários e-mails de várias pastas / subpastas para o Excel com VBA
Siga as etapas abaixo para exportar e-mails de várias pastas ou subpastas para pastas de trabalho do Excel com VBA no Outlook.
1. Pressione outro + F11 para abrir a janela Microsoft Visual Basic for Applications.
2. Clique inserção > Móduloe, em seguida, cole o código VBA abaixo na nova janela do módulo.
VBA: Exportar e-mails de várias pastas e subpastas para o Excel
Const MACRO_NAME = "Export Outlook Folders to Excel"
Sub ExportMain()
ExportToExcel "destination_folder_path\A.xlsx", "your_email_accouny\folder\subfolder_1"
ExportToExcel "destination_folder_path\B.xlsx", "your_email_accouny\folder\subfolder_2"
MsgBox "Process complete.", vbInformation + vbOKOnly, MACRO_NAME
End Sub
Sub ExportToExcel(strFilename As String, strFolderPath As String)
Dim olkMsg As Object
Dim olkFld As Object
Dim excApp As Object
Dim excWkb As Object
Dim excWks As Object
Dim intRow As Integer
Dim intVersion As Integer
If strFilename <> "" Then
If strFolderPath <> "" Then
Set olkFld = OpenOutlookFolder(strFolderPath)
If TypeName(olkFld) <> "Nothing" Then
intVersion = GetOutlookVersion()
Set excApp = CreateObject("Excel.Application")
Set excWkb = excApp.Workbooks.Add()
Set excWks = excWkb.ActiveSheet
'Write Excel Column Headers
With excWks
.Cells(1, 1) = "Subject"
.Cells(1, 2) = "Received"
.Cells(1, 3) = "Sender"
End With
intRow = 2
For Each olkMsg In olkFld.Items
'Only export messages, not receipts or appointment requests, etc.
If olkMsg.Class = olMail Then
'Add a row for each field in the message you want to export
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
intRow = intRow + 1
End If
Next
Set olkMsg = Nothing
excWkb.SaveAs strFilename
excWkb.Close
Else
MsgBox "The folder '" & strFolderPath & "' does not exist in Outlook.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The folder path was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The filename was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Set olkMsg = Nothing
Set olkFld = Nothing
Set excWks = Nothing
Set excWkb = Nothing
Set excApp = Nothing
End Sub
Public Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder
Dim arrFolders As Variant
Dim varFolder As Variant
Dim bolBeyondRoot As Boolean
On Error Resume Next
If strFolderPath = "" Then
Set OpenOutlookFolder = Nothing
Else
Do While Left(strFolderPath, 1) = "\"
strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
Loop
arrFolders = Split(strFolderPath, "\")
For Each varFolder In arrFolders
Select Case bolBeyondRoot
Case False
Set OpenOutlookFolder = Outlook.Session.Folders(varFolder)
bolBeyondRoot = True
Case True
Set OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder)
End Select
If Err.Number <> 0 Then
Set OpenOutlookFolder = Nothing
Exit For
End If
Next
End If
On Error GoTo 0
End Function
Function GetSMTPAddress(Item As Outlook.MailItem, intOutlookVersion As Integer) As String
Dim olkSnd As Outlook.AddressEntry
Dim olkEnt As Object
On Error Resume Next
Select Case intOutlookVersion
Case Is < 14
If Item.SenderEmailType = "EX" Then
GetSMTPAddress = SMTPEX(Item)
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
Case Else
Set olkSnd = Item.Sender
If olkSnd.AddressEntryUserType = olExchangeUserAddressEntry Then
Set olkEnt = olkSnd.GetExchangeUser
GetSMTPAddress = olkEnt.PrimarySmtpAddress
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
End Select
On Error GoTo 0
Set olkPrp = Nothing
Set olkSnd = Nothing
Set olkEnt = Nothing
End Function
Function GetOutlookVersion() As Integer
Dim arrVer As Variant
arrVer = Split(Outlook.Version, ".")
GetOutlookVersion = arrVer(0)
End Function
Function SMTPEX(olkMsg As Outlook.MailItem) As String
Dim olkPA As Outlook.propertyAccessor
On Error Resume Next
Set olkPA = olkMsg.propertyAccessor
SMTPEX = olkPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5D01001E")
On Error GoTo 0
Set olkPA = Nothing
End Function
3. Ajuste o código VBA acima conforme necessário.
(1) Substituir destino_pasta_caminho no código acima com o caminho da pasta de destino em que você salvará as pastas de trabalho exportadas, como C: \ Users \ DT168 \ Documents \ TEST.
(2) Substitua your_email_accouny \ folder \ subfolder_1 e your_email_accouny \ folder \ subfolder_2 no código acima pelos caminhos de pasta de subpastas no Outlook, como \Caixa de entrada\A e \Caixa de entrada\B
4. aperte o F5 ou clique no Execute botão para executar este VBA. E então clique no OK na caixa de diálogo Exportar Pastas do Outlook para Excel. Veja a imagem:
E agora os e-mails de todas as subpastas ou pastas especificadas no código VBA acima são exportados e salvos em pastas de trabalho do Excel.
Artigos Relacionados
Exportar e-mails por intervalo de datas para arquivo Excel ou arquivo PST no Outlook
Exportar e imprimir a lista de todas as pastas e subpastas no Outlook
Melhores ferramentas de produtividade de escritório
Kutools for Outlook - Mais de 100 recursos poderosos para turbinar seu Outlook
🤖 Assistente de correio AI: E-mails profissionais instantâneos com magia de IA – um clique para respostas geniais, tom perfeito, domínio multilíngue. Transforme o envio de e-mails sem esforço! ...
📧 Automação de e-mail: Fora do escritório (disponível para POP e IMAP) / Agendar envio de e-mails / CC/BCC automático por regras ao enviar e-mail / Encaminhamento automático (regras avançadas) / Adicionar saudação automaticamente / Divida automaticamente e-mails de vários destinatários em mensagens individuais ...
📨 Gestão de E-mail: Lembre-se facilmente de e-mails / Bloquear e-mails fraudulentos por assuntos e outros / Apagar Emails Duplicados / Pesquisa Avançada / Consolidar pastas ...
📁 Anexos Pró: Salvar em lote / Desanexar lote / Comprimir em Lote / Salvamento automático / Desanexação Automática / Compressão automática ...
???? Interface Mágica: 😊Mais emojis bonitos e legais / Aumente a produtividade do seu Outlook com visualizações com guias / Minimize o Outlook em vez de fechar ...
???? Maravilhas com um clique: Responder a todos com anexos recebidos / E-mails antiphishing / 🕘Mostrar fuso horário do remetente ...
👩🏼🤝👩🏻 Contatos e calendário: Adicionar contatos em lote de e-mails selecionados / Dividir um grupo de contatos em grupos individuais / Remover lembretes de aniversário ...
Sobre Características 100 Aguarde sua exploração! Clique aqui para descobrir mais.