Kadang-kadang, anda mungkin mahu memampatkan semua lampiran dalam e-mel ke dalam zip fail terus di Outlook. Dalam kes ini, anda boleh menggunakan kod VBA yang diperkenalkan dalam artikel ini untuk mencapai ciri ini.
Secara lalai, Outlook mempunyai had ukuran lampirannya - 20 MB untuk POP3, IMAP atau akaun e-mel berasaskan web lain dan 10 MB untuk akaun Exchange. Oleh itu, apabila jumlah lampiran melebihi had, anda akan mendapat kesilapan yang berkaitan. Dalam kes ini, adalah pilihan yang baik untuk memampatkan semua lampiran ke dalam a zip fail.

Namun, seperti yang anda lihat, Outlook tidak menawarkan fitur langsung seperti itu. Maksudnya, anda perlu terlebih dahulu zip fail-fail ini dalam cakera keras dan pasangkan semula fail yang baru dibuat zip fail. Pada hakikatnya, kebanyakan pengguna berharap mereka boleh mencapainya secara langsung dalam Outlook. Sebagai tindak balas kepada keperluan ini, kami akan memperkenalkan cara menggunakan VBA untuk merealisasikannya seperti berikut.
Memampatkan Semua Lampiran menjadi a Zip File
- Pertama, lancarkan aplikasi Outlook anda.
- Kemudian tekan butang kekunci "Alt + F11" di tetingkap Outlook utama.
- Seterusnya di tetingkap editor Outlook VBA yang baru, buka modul.
- Selepas itu, salin dan tampal kod VBA berikut ke dalam modul.
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
- Selepas itu, anda perlu memeriksa tetapan makro Outlook anda untuk memastikan bahawa makro dibenarkan.
- Kemudian anda boleh menambah projek VBA baru ke Bar Alat Akses Pantas tetingkap mesej seperti biasa.
- Akhirnya anda boleh mencuba.
- Pertama, buat e-mel baru dan lampirkan beberapa fail. Atau cukup buka surat dengan banyak lampiran.
- Seterusnya klik butang makro di Bar Alat Akses Pantas.
- Kemudian anda perlu menentukan nama untuk zip fail dan tekan "OK". Secara lalai, ia akan ditetapkan sama seperti subjek surat.
- Sekali gus, semua lampiran akan dimampatkan menjadi a zip fail, seperti tangkapan skrin berikut:
Buka zip .Zip Lampiran Langsung di Outlook
Tidak dapat dielakkan bahawa anda akan menerima sebarang lampiran dengan ".zip"sambungan fail sekali-sekala. Dalam senario ini, anda mungkin mahu membuka zip fail tersebut secara langsung dari dalam Outlook anda dan bukannya menyimpan dan menyahmampatkannya pada pemacu setempat. Walaupun Outlook tidak mempunyai ciri asli sedemikian, anda masih boleh menggunakan VBA untuk mendapatkannya juga. Untuk maklumat lanjut, anda boleh merujuk artikel lain – "Cara untuk membuka zip .Zip Lampiran Langsung di Outlook melalui VBA".
Pengenalan Pengarang:
Shirley Zhang adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki sql dan produk perisian pembaikan prospek. Untuk maklumat lebih lanjut, lawati www.datanumen.com


