Soms wilt u een Outlook-map met alle submappen en items batchgewijs exporteren naar een Windows-map. In dit artikel leert u een dergelijke methode die Outlook VBA toepast.
Als u een Outlook-map naar een lokaal station wilt exporteren met alle items in dezelfde mapstructuur, en u ervoor kiest om handmatig op te slaan en te exporteren, kost dit u veel tijd. Dus waarom gebruikt u geen andere middelen, zoals exporttools of VBA-codes? Hier zullen we zo'n stukje VBA-code aan u onthullen. Het zal je toelaten om het te bereiken als een makkie.

Exporteer alle submappen en items in een Outlook-map naar een Windows-map
- Vanaf het allereerste begin start uw Outlook-programma.
- Druk vervolgens in het hoofdvenster van Outlook op de sneltoetsen "Alt + F11".
- Vervolgens verschijnt het venster “Microsoft Visual Basic for Applications”.
- Vervolgens moet u een lege module openen en de volgende VBA-codes erin kopiëren.
Private objFileSystem As Object
Private Sub ExportFolderWithAllItems()
Dim objFolder As Outlook.Folder
Dim strPath As String
'Specify the root local folder
'Change it as per your needs
strPath = "E:\Outlook\"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
'Select a Outlook PST file or Outlook folder
Set objFolder = Outlook.Application.Session.PickFolder
Call ProcessFolders(objFolder, strPath)
MsgBox "Complete", vbExclamation
End Sub
Private Sub ProcessFolders(objCurrentFolder As Outlook.Folder, strCurrentPath As String)
Dim objItem As Object
Dim strSubject, strFileName, strFilePath As String
Dim objSubfolder As Outlook.Folder
'Create the local folder based on the Outlook folder
strCurrentPath = strCurrentPath & objCurrentFolder.Name
objFileSystem.CreateFolder strCurrentPath
For Each objItem In objCurrentFolder.Items
strSubject = objItem.Subject
'Remove unsupported characters in the subject
strSubject = Replace(strSubject, "/", " ")
strSubject = Replace(strSubject, "\", " ")
strSubject = Replace(strSubject, ":", "")
strSubject = Replace(strSubject, "?", " ")
strSubject = Replace(strSubject, Chr(34), " ")
strFileName = strSubject & ".msg"
i = 0
Do Until False
strFilePath = strCurrentPath & "\" & strFileName
'Check if there exist a file in the same name
If objFileSystem.FileExists(strFilePath) Then
'Add a sequence order to the file name
i = i + 1
strFileName = strSubject & " (" & i & ").msg"
Else
Exit Do
End If
Loop
'Save as MSG file
objItem.SaveAs strFilePath, olMSG
Next
'Process subfolders recursively
If objCurrentFolder.folders.Count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder, strCurrentPath & "\")
Next
End If
End Sub
- Daarna moet u ervoor zorgen dat uw Outlook macro's toestaat in de macro-instellingen.
- Uiteindelijk kun je het proberen.
- Allereerst terug naar het nieuwe macrovenster.
- Klik vervolgens op de "ExportFolderWithAllItems" subroutine.
- Druk vervolgens op de F5-toets om deze macro uit te voeren.
- Daarna moet u een specifieke map selecteren.
- Als u ten slotte de melding "Voltooid" krijgt, hebt u toegang tot de vooraf gedefinieerde lokale map. U zult zien dat alle items in dezelfde mappenstructuur zijn opgeslagen.
Voorkom gegevensverlies door Outlook-crashes
Misschien bent u ooit veel Outlook-crashes tegengekomen. M.ost van tijd, na een restart, zal Outlook normaal kunnen werken. Er is echter ook een geval dat ons PST-bestand beschadigd kan raken. Op dat moment zult u het beste proberen om uw PST-gegevens op te halen, zoals terugkerend naar een ervaren tool zoals DataNumen Outlook Repair. Het kan Outlook repareren fouten en extraheer gegevens uit een gecompromitteerd PST-bestand zonder te zweten.
Auteur Introductie:
Shirley Zhang is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder SQL Server reparatie en Outlook-reparatiesoftwareproducten. Voor meer informatie bezoek www.datanumen.com


