Деякі користувачі хотіли б стиснути всі електронні листи в папці Outlook у zip файл. Хоча такої прямої функції немає, ви можете скористатися кодом VBA, викладеним у цій статті, щоб швидко її реалізувати.
До zip Щоб отримати всі електронні листи в папці Outlook, спочатку потрібно експортувати їх на локальний диск по одному, а потім скористатися функцією «Надіслати до» > «Стиснута (zip-архівована) папка». Безсумнівно, цей спосіб занадто нудний. Тому, щоб допомогти вам зрозуміти це за один раз, далі ми навчимо вас іншому методу. Він навчить вас, як отримати його за допомогою коду VBA. Якщо ви не знайомі з VBA, ви можете звернутися до «Як запустити код VBA у своєму Outlook" тим часом.

Стиснути всі електронні листи у папці в Zip Файл
- Для початку запустіть редактор VBA Outlook за допомогою «Alt + F11».
- Потім скопіюйте та вставте код VBA в модуль.
Sub ZipAllEmailsInAFolder()
Dim objFolder As Outlook.Folder
Dim objItem As Object
Dim objMail As Outlook.MailItem
Dim strSubject As String
Dim varTempFolder As Variant
Dim varZipFile As Variant
Dim objShell As Object
Dim objFileSystem As Object
'Select an Outlook Folder
Set objFolder = Outlook.Application.Session.PickFolder
If Not (objFolder Is Nothing) Then
'Create a temp folder
varTempFolder = "E:\" & objFolder.Name & Format(Now, "YYMMDDHHMMSS")
MkDir (varTempFolder)
varTempFolder = varTempFolder & "\"
'Save each email as msg file
For Each objItem In objFolder.Items
If TypeOf objItem Is MailItem Then
Set objMail = objItem
strSubject = objMail.Subject
strSubject = Replace(strSubject, "/", " ")
strSubject = Replace(strSubject, "\", " ")
strSubject = Replace(strSubject, ":", "")
strSubject = Replace(strSubject, "?", " ")
strSubject = Replace(strSubject, Chr(34), " ")
objMail.SaveAs varTempFolder & strSubject & ".msg", olMSG
End If
Next
'Create a new ZIP file
varZipFile = "E:\" & objFolder.Name & " Emails.zip"
Open varZipFile For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
'Add the exported msg files to the ZIP file
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items
On Error Resume Next
Do Until objShell.NameSpace(varZipFile).Items.Count = objShell.NameSpace(varTempFolder).Items.Count
Application.Wait (Now + TimeValue("0:00:01"))
Loop
On Error GoTo 0
'Delete the temp folder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
objFileSystem.DeleteFolder Left(varTempFolder, Len(varTempFolder) - 1)
End If
End Sub
- Потім натисніть кнопку «F5», щоб запустити цей макрос.
- Пізніше у спливаючому діалоговому вікні виберіть вихідну папку Outlook і натисніть “OK”.
- Коли макрос закінчиться, відобразиться папка Windows, у якій є нова zip файл, який містить усі електронні листи з вибраної папки Outlook, як показано на наступному малюнку.
Вирішення проблемного пошкодження файлів Outlook
Серед усіх поширених проблем в Outlook, безсумнівно, пошкодження Outlook є найсерйознішою. Однак насправді такі проблеми можуть виникнути будь-коли. Тому, якщо ви є звичайним користувачем Outlook, вам потрібно регулярно створювати резервні копії даних Outlook. Крім того, доцільно придбати надійний Ремонт Outlook утиліта, наприклад DataNumen Outlook Repair.
Вступ автора:
Ширлі Чжан - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі sql виправити та перспективні програмні продукти для ремонту. Для отримання додаткової інформації відвідайте WWW.datanumen.com


