Іноді вам може знадобитися стиснути всі вкладення в електронному листі у файл zip файл безпосередньо в Outlook. У цьому випадку ви можете використовувати код VBA, представлений у цій статті, для досягнення цієї функції.
За замовчуванням Outlook має обмежений розмір вкладення - 20 МБ для POP3, IMAP або інших веб-облікових записів електронної пошти та 10 МБ для облікових записів Exchange. Отже, коли загальний розмір вкладень перевищує обмеження, ви отримаєте відповідні помилки. У цьому випадку хорошим варіантом буде стиснути всі вкладення у файл zip файлу.

Однак, як бачите, Outlook не пропонує такої прямої функції. Тобто потрібно спочатку zip ці файли на жорсткому диску, а потім знову приєднайте щойно створені zip файл. Насправді більшість користувачів сподіваються, що зможуть зробити це безпосередньо в Outlook. У відповідь на цю вимогу ми розповімо, як використовувати VBA для реалізації цього далі.
Стиснути всі вкладення в a Zip Файл
- Перш за все, запустіть програму Outlook.
- Потім натисніть клавіші “Alt + F11” у головному вікні Outlook.
- Далі у новому вікні редактора Outlook VBA відкрийте модуль.
- Згодом скопіюйте та вставте наступні коди VBA в модуль.
Sub ZipAttachments()
Dim objMail As Outlook.MailItem
Dim objAttachments As Outlook.attachments
Dim objAttachment As Outlook.Attachment
Dim objFileSystem As Object
Dim objShell As Object
Dim varTempFolder As Variant
Dim varZipFile As Variant
'Save the attachments to Temporary folder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
varTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp " & Format(Now, "dd-mm-yyyy- hh-mm-ss-")
MkDir (varTempFolder)
varTempFolder = varTempFolder & "\"
Set objMail = Outlook.Application.ActiveInspector.CurrentItem
Set objAttachments = objMail.attachments
For Each objAttachment In objAttachments
objAttachment.SaveAsFile (varTempFolder & objAttachment.FileName)
Next
'Create a new zip file
varZipFile = InputBox("Specify a name for the new zip file", "Name Zip File", objMail.Subject)
varZipFile = objFileSystem.GetSpecialFolder(2).Path & "\" & varZipFile & ".zip"
Open varZipFile For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
'Copy all the saved attachments to the new zip file
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items
'Keep macro running until Compressing is done
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 all the attachments
Set objAttachments = objMail.attachments
While objAttachments.Count > 0
objAttachments.Item(1).Delete
Wend
'Add the new zip file to the current email
objMail.attachments.Add varZipFile
'Prompt
MsgBox ("Complete!")
End Sub
- Після цього вам потрібно перевірити налаштування макроса Outlook, щоб переконатися, що макрос дозволений.
- Пізніше ви можете додати новий проект VBA до панелі швидкого доступу у вікні повідомлень, як зазвичай.
- Зрештою ви можете спробувати.
- По-перше, створіть новий електронний лист і вкладіть кілька файлів. Або просто відкрийте лист із великою кількістю вкладень.
- Потім натисніть кнопку макросу на панелі швидкого доступу.
- Пізніше вам потрібно вказати ім'я для zip файл і натисніть "OK". За замовчуванням він буде встановлений так само, як тема пошти.
- Одночасно всі вкладення будуть стиснуті в zip файл, як на наступному скріншоті:
Розпакуйте .Zip Вкладення безпосередньо в Outlook
Неминуче, що ви отримаєте будь-які вкладення з «.zip«розширення файлу час від часу». У цьому випадку вам може знадобитися безпосередньо розпакувати такі файли з Outlook, замість того, щоб зберігати та розпакувати їх на локальному диску. Навіть якщо Outlook не має такої вбудованої функції, ви все одно можете використовувати VBA, щоб отримати її. Для отримання додаткової інформації ви можете звернутися до іншої статті – «Як розпакувати .Zip Вкладення безпосередньо в Outlook через VBA".
Вступ автора:
Ширлі Чжан - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі sql виправити та перспективні програмні продукти для ремонту. Для отримання додаткової інформації відвідайте WWW.datanumen.com


