Někdy můžete chtít zkomprimovat všechny přílohy v e-mailu do a zip soubor přímo v Outlooku. V takovém případě můžete k dosažení této funkce použít kód VBA představený v tomto článku.
Ve výchozím nastavení má Outlook limit velikosti přílohy - 20 MB pro POP3, IMAP nebo jiné webové e-mailové účty a 10 MB pro účty Exchange. Když tedy celková velikost příloh překročí limit, zobrazí se související chyby. V tomto případě je dobrá volba komprimovat všechny přílohy do a zip soubor.
Jak však vidíte, Outlook nenabízí takovou přímou funkci. To znamená, že musíte nejprve zip tyto soubory na pevném disku a znovu připojte nově vytvořené zip soubor. Ve skutečnosti most uživatelé doufají, že toho mohou přímo dosáhnout v Outlooku. V reakci na tento požadavek v následujících bodech představíme, jak jej pomocí VBA realizovat.
Komprimovat všechny přílohy do a Zip Soubor
- Na prvním místě spusťte aplikaci Outlook.
- Poté stiskněte „Alt + F11“ v hlavním okně aplikace Outlook.
- Dále v novém okně editoru aplikace Outlook VBA otevřete modul.
- Následně zkopírujte a vložte následující 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
- Poté musíte zkontrolovat nastavení maker aplikace Outlook, abyste se ujistili, že je makro povoleno.
- Později můžete jako obvykle přidat nový projekt VBA na panel nástrojů Rychlý přístup okna zprávy.
- Nakonec to můžete vyzkoušet.
- Nejprve vytvořte nový e-mail a připojte několik souborů. Nebo jednoduše otevřete e-mail s mnoha přílohami.
- Dále klikněte na tlačítko makra na panelu nástrojů Rychlý přístup.
- Později musíte zadat název souboru zip soubor a stiskněte „OK“. Ve výchozím nastavení bude nastaven stejně jako předmět pošty.
- Najednou budou všechny přílohy komprimovány do a zip jako následující snímek obrazovky:
Unzip the.Zip Přílohy přímo v Outlooku
Je nevyhnutelné, že budete dostávat jakékoli přílohy s “.zip”Přípona souboru tu a tam. V tomto scénáři můžete chtít přímo zrušitzip takové soubory z vašeho Outlooku místo toho, abyste je ukládali a dekomprimovali na místní jednotku. Přestože Outlook nemá takovou nativní funkci, stále ji můžete použít pomocí VBA. Více podrobností najdete v jiném článku - „Jak Unzip the.Zip Přílohy přímo v Outlooku přes VBA".
Úvod autora:
Shirley Zhang je expertem na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně oprava sql a výhledové softwarové produkty pro opravy. Pro více informací navštivte www.datanumen.com



