Včasih boste morda želeli stisniti vse priloge v e-poštnem sporočilu v zip datoteko neposredno v Outlooku. V tem primeru lahko za doseganje te funkcije uporabite kodo VBA, predstavljeno v tem članku.
Outlook ima privzeto omejitev velikosti priloge - 20 MB za POP3, IMAP ali druge spletne e-poštne račune in 10 MB za račune Exchange. Ko bo torej skupna velikost prilog presegla omejitev, boste dobili povezane napake. V tem primeru je dobra možnost, da stisnete vse priloge v zip Datoteka.
Vendar, kot vidite, Outlook ne ponuja tako neposredne funkcije. Se pravi, da morate najprej zip te datoteke na trdem disku in nato znova priložite novo ustvarjeno zip mapa. V resnici most uporabniki upajo, da jih lahko neposredno dosežejo v programu Outlook. Kot odgovor na to zahtevo bomo v nadaljevanju predstavili, kako uporabiti VBA, da jo uresničimo.
Stisnite vse priloge v Zip file
- Najprej zaženite aplikacijo Outlook.
- Nato v glavnem Outlookovem oknu pritisnite tipke “Alt + F11”.
- Nato v novem oknu urejevalnika Outlook VBA odprite modul.
- Nato v modul kopirajte in prilepite naslednje kode 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
- Po tem morate preveriti nastavitve makra v Outlooku, da zagotovite, da je makro dovoljen.
- Kasneje lahko nov projekt VBA dodate v orodno vrstico za hitri dostop v oknu s sporočili, kot običajno.
- Sčasoma lahko poskusite.
- Najprej ustvarite novo e-poštno sporočilo in priložite več datotek. Ali pa preprosto odprite pošto z veliko prilogami.
- Nato kliknite gumb makra v orodni vrstici za hitri dostop.
- Kasneje morate določiti ime za zip in pritisnite »V redu«. Privzeto bo nastavljena enako kot zadeva pošte.
- Vse priloge bodo hkrati stisnjene v zip datoteko, kot je naslednji posnetek zaslona:
Unzip .Zip Priloge neposredno v programu Outlook
Neizogibno je, da boste prejeli kakršne koli priloge z “.zip”, Zdaj in potem pripono datoteke. V tem primeru boste morda želeli neposredno unzip take datoteke iz Outlooka, namesto da bi jih shranili in stisnili na lokalni pogon. Čeprav Outlook nima tako izvorne funkcije, lahko še vedno uporabljate VBA, da jo dobite. Za več podrobnosti se lahko obrnete na drug članek - “Kako Unzip .Zip Priloge neposredno v Outlooku prek VBA".
Uvod avtorja:
Shirley Zhang je strokovnjakinja za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z sql popravek in obeti za popravilo programskih izdelkov. Za več informacij obiščite www.datanumen.com



