Некоторые пользователи хотели бы сжать все электронные письма в папке Outlook в zip файл. Хотя такой прямой функции нет, вы можете использовать код VBA, представленный в этой статье, для ее быстрой реализации.
к zip Чтобы экспортировать все электронные письма из папки Outlook по одному на локальный диск, необходимо использовать функцию «Отправить в» > «Сжатая (заархивированная) папка». Безусловно, это очень утомительно. Поэтому, чтобы помочь вам сделать это с первого раза, ниже мы расскажем о другом методе. Мы научим вас, как это сделать с помощью кода 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 и нажмите «ОК».
- Когда макрос завершится, отобразится папка Windows, в которой есть новый zip файл, который содержит все электронные письма из выбранной папки Outlook, как показано на следующем рисунке.
Обработка проблемного повреждения файла Outlook
Среди всех распространенных проблем Outlook, несомненно, повреждение данных Outlook является самой серьезной. Однако в реальности такие проблемы могут возникнуть в любой момент. Поэтому, если вы регулярно пользуетесь Outlook, вам необходимо регулярно создавать резервные копии данных Outlook. Кроме того, разумно приобрести надежный резервный файл. Восстановление Outlook утилита, например DataNumen Outlook Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправление sql и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com


