Niekedy možno budete chcieť skomprimovať všetky prílohy v e-maile do a zip súbor priamo v Outlooku. V takom prípade môžete na dosiahnutie tejto funkcie použiť kód VBA uvedený v tomto článku.
V predvolenom nastavení má Outlook limit veľkosti prílohy - 20 MB pre POP3, IMAP alebo iné webové e-mailové účty a 10 MB pre účty Exchange. Keď teda celková veľkosť príloh prekročí limit, zobrazia sa vám súvisiace chyby. V takom prípade je dobrá voľba komprimovať všetky prílohy do a zip súbor.

Ako však vidíte, Outlook takúto priamu funkciu neponúka. To znamená, že musíte najskôr zip tieto súbory na pevnom disku a potom znovu pripojte novovytvorené zip súbor. V skutočnosti väčšina používateľov dúfa, že to dokážu priamo v programe Outlook. V reakcii na túto požiadavku si v nasledujúcom texte predstavíme, ako na to použiť VBA.
Komprimujte všetky prílohy do a Zip rezeň
- Na prvom mieste spustite aplikáciu Outlook.
- Potom stlačte klávesy „Alt + F11“ v hlavnom okne programu Outlook.
- Ďalej v novom okne editora Outlook VBA otvorte modul.
- Následne skopírujte a vložte nasledujúce kódy VBA do modulu.
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
- Potom musíte skontrolovať nastavenie makra programu Outlook, aby ste sa ubezpečili, že je makro povolené.
- Neskôr môžete nový projekt VBA pridať na panel s nástrojmi Rýchly prístup v okne správy ako obvykle.
- Nakoniec to môžete vyskúšať.
- Najskôr vytvorte nový e-mail a priložte niekoľko súborov. Alebo jednoducho otvorte e-mail s mnohými prílohami.
- Ďalej kliknite na tlačidlo makra na paneli s nástrojmi Rýchly prístup.
- Neskôr budete musieť určiť názov súboru zip súbor a stlačte „OK“. Predvolene bude nastavený rovnako ako predmet pošty.
- Naraz budú všetky prílohy skomprimované do a zip nasledujúci obrázok obrazovky:
Rozbaľte súbor .Zip Prílohy priamo v Outlooku
Je nevyhnutné, že dostanete akékoľvek prílohy s textom „.zip„prípona súboru“. V tomto scenári možno budete chcieť takéto súbory priamo rozbaliť z Outlooku namiesto ich uloženia a dekomprimovania na lokálnom disku. Aj keď Outlook nemá takúto natívnu funkciu, stále ju môžete získať pomocou VBA. Podrobnejšie informácie nájdete v inom článku – „Ako rozbaliť .Zip Prílohy priamo v Outlooku cez VBA".
Úvod autora:
Shirley Zhang je expertkou na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť sql a výhľadové softvérové produkty na opravu. Pre viac informácií navštívte www.datanumen. S


