Ibland kanske du vill komprimera alla bilagor i ett e-postmeddelande till en zip fil direkt i Outlook. I det här fallet kan du använda VBA-koden som introducerades i den här artikeln för att uppnå denna funktion.
Som standard har Outlook sin begränsningsstorleksgräns - 20 MB för POP3, IMAP eller andra webbaserade e-postkonton och 10 MB för Exchange-konton. Så när den totala storleken på bilagor överskrider gränsen får du relaterade fel. I det här fallet är det ett bra alternativ att komprimera alla bilagor till en zip fil.
Som du kan se erbjuder Outlook dock inte en sådan direktfunktion. Det vill säga, du måste först zip dessa filer på hårddisken och bifoga sedan den nyskapade zip fil. I verkligheten, most användare hoppas att de kan uppnå det direkt i Outlook. Som svar på detta krav kommer vi att introducera hur man använder VBA för att förverkliga det i det följande.
Komprimera alla bilagor till en Zip Fil
- För det första, starta din Outlook-applikation.
- Tryck sedan på “Alt + F11” -knapparna i huvudfönstret i Outlook.
- Nästa i det nya Outlook VBA-redigeringsfönstret öppnar du en modul.
- Kopiera sedan och klistra in följande VBA-koder i modulen.
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
- Därefter måste du kontrollera dina Outlook-makroinställningar för att säkerställa att makro är tillåtet.
- Senare kan du lägga till det nya VBA-projektet i snabbåtkomstverktygsfältet i meddelandefönstret som vanligt.
- Så småningom kan du prova.
- Skapa först ett nytt e-postmeddelande och bifoga flera filer. Eller helt enkelt öppna ett mail med många bilagor.
- Klicka sedan på makroknappen i snabbåtkomstverktygsfältet.
- Senare måste du ange ett namn för zip fil och tryck “OK”. Som standard kommer den att vara samma som postens ämne.
- Omedelbart komprimeras alla bilagor till en zip fil, som följande skärmdump:
Unzip den.Zip Bilagor direkt i Outlook
Det är oundvikligt att du får några bilagor med “.zip”Filtillägg då och då. I det här scenariot kanske du vill avmarkera direktzip sådana filer från din Outlook istället för att spara och packa upp dem på den lokala enheten. Även om Outlook inte har en sådan inbyggd funktion kan du fortfarande använda VBA för att få det också. För mer information kan du hänvisa till en annan artikel - “Hur man unzip den.Zip Bilagor direkt i Outlook via VBA".
Författarintroduktion:
Shirley Zhang är expert på dataåterställning DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive sql fix och Outlook-programvara för reparationsprogramvara. För mer information besök www.datanumen.com



