When you receive an attachment in “.zip” file extension, if you want to unzip them, in general, you should save and unzip them in local drive. But many hope to unzip them directly in Outlook. This article will teach you how to get it via VBA.
You must have ever received the attachments which are in “.zip" расширение файла. Для доступа к внутренним файлам в одном zip file, you have to firstly unzip it. In this case, as usual, you have to first save the zip file to local drive and then right click it and select “Extract All” from the context menu. In reality, many users prefer to unzip the file directly within Outlook. However, Outlook does not provide such a native feature. Fortunately, you can follow the steps thereinafter to utilize VBA to realize it like a breeze.

Разархивируйте .Zip Вложения прямо в Outlook
- Прежде всего, запустите приложение Outlook.
- Затем нажмите сочетание клавиш «Alt + F11» в окне Outlook, чтобы получить доступ к редактору VBA.
- Далее в окне «Microsoft Visual Basic для приложений» откройте неиспользуемый модуль.
- Затем скопируйте и вставьте в этот модуль следующие коды VBA.
Public Sub UnzipFileInOutlook()
Dim objMail As Outlook.MailItem
Dim objAttachments As Outlook.attachments
Dim objAttachment As Outlook.Attachment
Dim objShell As Object
Dim objFileSystem As Object
Dim strTempFolder As String
Dim strFilePath As String
Dim strFileName As String
Set objMail = Outlook.Application.ActiveInspector.CurrentItem
Set objAttachments = objMail.attachments
'Save & Unzip the zip file in local drive
Set objShell = CreateObject("Shell.Application")
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp" & Format(Now, "yyyy-mm-dd-hh-mm-ss")
MkDir (strTempFolder)
For Each objAttachment In objAttachments
If Right(objAttachment.FileName, 3) = "zip" Then
strFilePath = strTempFolder & "\" & objAttachment.FileName
objAttachment.SaveAsFile (strFilePath)
objShell.NameSpace((strTempFolder)).CopyHere objShell.NameSpace((strFilePath)).Items
End If
Next
'Reattach the files extracted from the zip file
strFileName = Dir(strTempFolder & "\")
While Len(strFileName) > 0
objMail.attachments.Add (strTempFolder & "\" & strFileName)
strFileName = Dir
objMail.Save
Wend
'Delete the attachments in “.zip” file extension
Set objAttachments = objMail.attachments
For Each objAttachment In objAttachments
If Right(objAttachment.FileName, 3) = "zip" Then
objAttachment.Delete
objMail.Save
End If
Next
'Delete the temp folder and files
objFileSystem.DeleteFolder (strTempFolder)
End Sub
- После этого вы можете добавить новый проект VBA на панель быстрого доступа окна сообщения, как обычно.
- Наконец, вы можете попробовать.
- Сначала откройте сообщение с zip файл в отдельном окне.
- Затем нажмите «Действия» > «Редактировать сообщение».
- Затем нажмите кнопку нового макроса на панели быстрого доступа.
- Сразу, zip file will unzipped, like the following screenshot:
Избавьтесь от надоедливых проблем с PST
Хотя файл PST в новом формате Unicode поддерживает размер файла 20 ГБ, все же разумно сохранять файл как можно меньше. Это связано с тем, что большой файл PST гораздо более подвержен повреждению. Как только ваш PST-файл будет скомпрометирован, вам придется приложить усилия, чтобы восстановить PST данные. В этом случае у вас нет другого выбора, кроме как вернуться к хорошо зарекомендовавшему себя и уважаемому инструменту, такому как DataNumen Outlook Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая ремонт sql и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com

