Можливо, ви зберегли кілька електронних листів Outlook у форматі .msg у папці Windows. А пізніше, якщо ви захочете витягти вкладення з цих файлів, ви можете скористатися способом, наведеним у цій статті.
Витягнути вкладення з електронних листів у програмі Outlook досить просто. Але як щодо електронних листів, які були експортовані як файли .msg у папці Windows? Загалом, вам слід спочатку відкрити ці файли .msg у своєму Outlook, а потім зберегти вкладення з них по одному. Можливо, ви відчуєте це занадто громіздко. Отже, далі ми навчимо вас ще одному набагато швидшому рішенню.
Витягніть вкладення з усіх файлів повідомлень Outlook у папці Windows
- Для початку запустіть програму Outlook і запустіть редактор VBA.
- Потім у вікні “Microsoft Visual Basic for Applications” скопіюйте код VBA нижче у невикористаний модуль.
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
- Згодом наведіть курсор на першу підпрограму та натисніть клавішу “F5”.
- Згодом вам потрібно буде вибрати вихідну папку Windows у спливаючому діалоговому вікні.
- Після натискання кнопки «OK» макрос продовжить працювати.
- Коли він закінчиться, ви отримаєте повідомлення "Завершено".
- Тепер ви можете отримати доступ до попередньо визначеної локальної папки для збереження вилучених вкладень.
Ефективно вирішуйте проблеми Outlook
Оскільки Outlook, як відомо, схильний до помилок, ви повинні бути обережними, маючи справу з об’єктами Outlook, наприклад, ніколи не довіряти файлам чи посиланням, вбудованим у невідомі електронні листи тощо. В іншому випадку ваш файл Outlook може легко пошкодитися. За таких обставин навіть внутрішній інструмент виправлення не допоможе. До чого ви можете вдатися, це лише досвідчена зовнішня програма, наприклад DataNumen Outlook Repair. Він може виправити PST файл з легкістю.
Вступ автора:
Ширлі Чжан - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі пошкоджений sql та перспективні програмні продукти для ремонту. Для отримання додаткової інформації відвідайте WWW.datanumen.com


