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



