Como mover em lote todos os e-mails em um arquivo PST do Outlook para uma pasta específica via VBA

Compartilhe agora:

Se você deseja mover todos os e-mails em um arquivo PST para uma pasta específica em outro arquivo PST, pode usar o método apresentado neste artigo. Ele ensinará como usar o VBA para obtê-lo rapidamente.

Às vezes, por alguns motivos, pode ser necessário mover todos os e-mails em um arquivo PST específico para uma pasta específica em outro arquivo PST. Nesse caso, se você fizer isso manualmente, será sem dúvida bastante problemático. Portanto, aqui vamos ensinar um método rápido, que usará o VBA para percorrer todas as pastas de um determinado arquivo PST e mover cada e-mail para uma pasta específica. Continue lendo para obter as etapas e códigos elaborados.

Lote mover todos os e-mails em um arquivo PST do Outlook para uma pasta específica

Lote mover todos os e-mails em um arquivo PST do Outlook para uma pasta específica

  1. No início, inicie seu aplicativo Outlook.
  2. Em seguida, você pode alternar para a guia “Desenvolvedor” e clicar no botão “Visual Basic”. Ou pressione os atalhos de teclado "Alt + F11".
  3. Posteriormente, na janela pop-up do editor VBA, abra um módulo não em uso ou insira diretamente um novo.
  4. Em seguida, copie e cole os seguintes códigos VBA neste módulo.
Private Sub GetAllFolders()
    Dim objFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
 
    'Get all the folders in a specific PST file
    Set objFolders = Outlook.Application.Session.Folders("Personal").Folders
 
    For Each objFolder In objFolders
        Call MoveEmails(objFolder)
    Next
End Sub
 
Private Sub MoveEmails(ByVal objFolder As Outlook.Folder)
    Dim objTargetFolder As Outlook.Folder
    Dim objSubFolder As Outlook.Folder
    Dim i As Long
    Dim objMail As Outlook.MailItem
 
    'Get the specific destination folder
    'You can change it as per your case
    Set objTargetFolder = Outlook.Application.Session.Folders("John Smith").Folders("New")
 
    If objTargetFolder Is Nothing Then
       Set objTargetFolder = Outlook.Application.Session.Folders("John Smith").Folders.Add("New")
    End If
 
    'Move each emails in the folder to the destination folder
    For i = objFolder.Items.Count To 1 Step -1
        If objFolder.Items.Item(i).Class = olMail Then
           Set objMail = objFolder.Items.Item(i)
           objMail.Move objTargetFolder
        End If
    Next i
 
    'Process the subfolders in the folder recursively
    If (objFolder.Folders.Count > 0) Then
       For Each objSubFolder In objFolder.Folders
           Call MoveEmails(objSubFolder)
       Next
    End If
End Sub

Códigos VBA - Mover em lote todos os e-mails em um arquivo PST do Outlook para uma pasta específica

  1. Depois disso, altere o nível de segurança de macro do Outlook para baixo.
  2. Eventualmente, você pode executar a nova macro clicando no ícone “Executar” na barra de ferramentas ou pressionando a tecla “F5”.
  3. Ao mesmo tempo, todos os e-mails de todas as pastas em uma pasta específica serão movidos para a pasta predeterminada em lotes.

Resgate seus dados PST a tempo

Se você infelizmente sofre dano PST, O que você vai fazer então? Em geral, seu primeiro pensamento deve ser recuperar os dados PST comprometidos o mais rápido possível. Como de costume, a maneira mais simples é restaurar a partir de um backup de dados atualizado. No entanto, se o backup de dados tiver várias semanas, pode ser inútil. Nesse caso, você não tem escolha a não ser recorrer a uma poderosa ferramenta de recuperação, como DataNumen Outlook Repair.

Introdução do autor:

Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo conserto de mdf e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.