Néha előfordulhat, hogy az e-mail összes mellékletét tömöríteni szeretné a zip fájlt közvetlenül az Outlookban. Ebben az esetben használhatja a cikkben bemutatott VBA-kódot a funkció eléréséhez.
Alapértelmezés szerint az Outlook mellékletméret-korlátozással rendelkezik – 20 MB POP3, IMAP vagy más webalapú e-mail fiókok esetén, és 10 MB Exchange-fiókok esetén. Tehát, ha a mellékletek teljes mérete meghaladja a korlátot, kapcsolódó hibákat kap. Ebben az esetben jó lehetőség az összes mellékletet tömöríteni a zip fájlt.
Azonban amint láthatja, az Outlook nem kínál ilyen közvetlen szolgáltatást. Vagyis először meg kell zip ezeket a fájlokat a merevlemezen, majd csatolja újra az újonnan létrehozott fájlokat zip fájlt. A valóságban a most a felhasználók azt remélik, hogy ezt közvetlenül az Outlookon belül érhetik el. Válaszul erre a követelményre, a következőkben bemutatjuk, hogyan használhatjuk a VBA-t ennek megvalósításához.
Az összes melléklet tömörítése a Zip filé
- Először is indítsa el az Outlook alkalmazást.
- Ezután nyomja meg az „Alt + F11” billentyűket az Outlook főablakában.
- Ezután az Outlook VBA szerkesztő új ablakában nyisson meg egy modult.
- Ezt követően másolja ki és illessze be a következő VBA-kódokat a modulba.
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
- Ezt követően ellenőriznie kell az Outlook makró beállításait, hogy megbizonyosodjon arról, hogy a makró engedélyezett.
- Később a szokásos módon hozzáadhatja az új VBA-projektet az üzenetablak Gyorselérési eszköztárához.
- Végül megpróbálhatod.
- Először is hozzon létre egy új e-mailt, és csatoljon néhány fájlt. Vagy egyszerűen nyissa meg a sok mellékletet tartalmazó levelet.
- Ezután kattintson a makró gombra a Gyorselérési eszköztárban.
- Később meg kell adnia a nevét zip fájlt, és nyomja meg az „OK” gombot. Alapértelmezés szerint ugyanaz lesz, mint a levél tárgya.
- Egyszerre az összes melléklet tömörítésre kerül a zip fájl, mint a következő képernyőkép:
Unzip a .Zip Mellékletek közvetlenül az Outlookban
Elkerülhetetlen, hogy bármilyen „mellékletet” kapjon.zip” fájlkiterjesztés időnként. Ebben a forgatókönyvben érdemes lehet közvetlenül unzip az ilyen fájlokat az Outlook programból, ahelyett, hogy a helyi meghajtóra mentené és kitömörítené őket. Annak ellenére, hogy az Outlook nem rendelkezik ilyen natív funkcióval, a VBA segítségével is megszerezheti azt. További részletekért egy másik cikkben olvashat – „Hogyan Unzip a .Zip Mellékletek közvetlenül az Outlookban VBA-n keresztül".
Szerző Bevezetés:
Shirley Zhang adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve sql javítás és outlook javítószoftver termékek. További információért látogasson el www.datanumen.com



