Misschien heb je meerdere Outlook-e-mails in .msg-indeling opgeslagen in een Windows-map. En later wilt u de bijlagen uit deze bestanden extraheren, u kunt de manier gebruiken die in dit artikel wordt gedeeld.
Het is vrij eenvoudig om bijlagen uit de e-mails in uw Outlook te extraheren. Maar hoe zit het met de e-mails die zijn geëxporteerd als .msg-bestanden in een Windows-map? Over het algemeen moet u deze .msg-bestanden eerst openen in uw Outlook en vervolgens de bijlagen één voor één opslaan. Misschien vindt u het te omslachtig. Daarom leren we u hierna nog een veel snellere oplossing.
Extraheer bijlagen uit alle Outlook-berichtbestanden in een Windows-map
- Om te beginnen, start uw Outlook-applicatie en voer de VBA-editor uit.
- Kopieer vervolgens in het venster "Microsoft Visual Basic for Applications" de onderstaande VBA-code naar een ongebruikte module.
Dim strAttachmentFolder As String
Sub ExtractAttachmentsFromEmailsStoredinWindowsFolder()
Dim objShell, objWindowsFolder As Object
'Select a Windows folder
Set objShell = CreateObject("Shell.Application")
Set objWindowsFolder = objShell.BrowseForFolder(0, "Select a Windows Folder:", 0, "")
If Not objWindowsFolder Is Nothing Then
'Create a new folder for saving extracted attachments
strAttachmentFolder = "E:\Attachments-" & Format(Now, "MMDDHHMMSS") & "\"
MkDir (strAttachmentFolder)
Call ProcessFolders(objWindowsFolder.self.Path & "\")
MsgBox "Completed!", vbInformation + vbOKOnly
End If
End Sub
Sub ProcessFolders(strFolderPath As String)
Dim objFileSystem As Object
Dim objFolder As Object
Dim objFiles As Object
Dim objFile As Object
Dim objItem As Object
Dim i As Long
Dim objSubFolder As Object
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFileSystem.GetFolder(strFolderPath)
Set objFiles = objFolder.Files
For Each objFile In objFiles
If objFileSystem.GetExtensionName(objFile) = "msg" Then
'Open the Outlook emails stored in Windows folder
Set objItem = Session.OpenSharedItem(objFile.Path)
If TypeName(objItem) = "MailItem" Then
If objItem.Attachments.Count > 0 Then
'Extract attachments
For i = objItem.Attachments.Count To 1 Step -1
objItem.Attachments(i).SaveAsFile strAttachmentFolder & objItem.Attachments(i).FileName
Next
End If
End If
End If
Next
'Process all subfolders recursively
If objFolder.SubFolders.Count > 0 Then
For Each objSubFolder In objFolder.SubFolders
If ((objSubFolder.Attributes And 2) = 0) And ((objSubFolder.Attributes And 4) = 0) Then
Call ProcessFolders(objSubFolder.Path)
End If
Next
End If
End Sub
- Verplaats vervolgens de cursor naar de eerste subroutine en druk op de toets "F5".
- Daarna moet u de bron-Windows-map in het pop-upvenster kiezen.
- Nadat u op "OK" hebt geklikt, blijft de macro werken.
- Als het klaar is, ontvang je het bericht "Voltooid".
- Nu kunt u toegang krijgen tot de vooraf gedefinieerde lokale map om uitgepakte bijlagen op te slaan.
Los Outlook-problemen efficiënt op
Aangezien Outlook weliswaar foutgevoelig is, moet u voorzichtig zijn bij het omgaan met Outlook-objecten, zoals nooit vertrouwen in de bestanden of koppelingen die zijn ingesloten in de onbekende e-mails, enzovoort. Anders kan uw Outlook-bestand gemakkelijk beschadigd raken. Onder die omstandigheid zal zelfs de interne fix-tool niet veel helpen. Waar u uw toevlucht toe kunt nemen, is alleen een ervaren extern hulpprogramma, zoals DataNumen Outlook Repair. Het kan repareer PST bestand met moeiteloos gemak.
Auteur Introductie:
Shirley Zhang is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder beschadigde sql en Outlook-reparatiesoftwareproducten. Voor meer informatie bezoek www.datanumen.com


