บางครั้ง คุณอาจต้องการบีบอัดไฟล์แนบทั้งหมดในอีเมลลงในไฟล์ zip ไฟล์โดยตรงใน Outlook ในกรณีนี้ คุณสามารถใช้รหัส VBA ที่แนะนำในบทความนี้เพื่อให้ได้คุณลักษณะนี้
ตามค่าเริ่มต้น Outlook มีขนาดไฟล์แนบจำกัดคือ 20 MB สำหรับ POP3, IMAP หรือบัญชีอีเมลบนเว็บอื่นๆ และ 10 MB สำหรับบัญชี Exchange ดังนั้น เมื่อขนาดรวมของไฟล์แนบเกินขีดจำกัด คุณจะได้รับข้อผิดพลาดที่เกี่ยวข้อง ในกรณีนี้ เป็นตัวเลือกที่ดีในการบีบอัดไฟล์แนบทั้งหมดเป็นไฟล์แนบ zip ไฟล์

อย่างไรก็ตาม อย่างที่คุณเห็น Outlook ไม่มีคุณลักษณะดังกล่าวโดยตรง กล่าวคือ คุณต้องทำก่อน zip ไฟล์เหล่านี้ในฮาร์ดไดรฟ์แล้วแนบใหม่ที่สร้างขึ้นใหม่ zip ไฟล์ ในความเป็นจริง ผู้ใช้ส่วนใหญ่หวังว่าจะสามารถทำได้โดยตรงภายใน Outlook เพื่อตอบสนองความต้องการนี้ ในส่วนต่อไปนี้เราจะแนะนำวิธีการใช้ VBA เพื่อทำให้สำเร็จ
บีบอัดไฟล์แนบทั้งหมดเป็นไฟล์ Zip เนื้อไม่มีมัน
- ในตอนแรกเปิดแอปพลิเคชัน Outlook ของคุณ
- จากนั้นกดปุ่ม“ Alt + F11” ในหน้าต่างหลักของ Outlook
- ถัดไปในหน้าต่างโปรแกรมแก้ไข Outlook VBA ใหม่ ให้เปิดโมดูล
- จากนั้นคัดลอกและวางรหัส 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
- หลังจากนั้น คุณต้องตรวจสอบการตั้งค่าแมโคร Outlook ของคุณเพื่อให้แน่ใจว่าแมโครนั้นได้รับอนุญาต
- ในภายหลัง คุณสามารถเพิ่มโครงการ VBA ใหม่ไปยัง Quick Access Toolbar ของหน้าต่างข้อความได้ตามปกติ
- ในที่สุดคุณสามารถลอง
- ขั้นแรก สร้างอีเมลใหม่และแนบไฟล์หลายไฟล์ หรือเพียงแค่เปิดจดหมายที่มีเอกสารแนบมากมาย
- จากนั้นคลิกปุ่มมาโครในแถบเครื่องมือด่วน
- หลังจากนั้นคุณต้องระบุชื่อสำหรับ zip ไฟล์และกด "ตกลง" ตามค่าเริ่มต้น จะถูกตั้งค่าเหมือนกับหัวเรื่องของเมล
- ไฟล์แนบทั้งหมดจะถูกบีบอัดในไฟล์ zip ไฟล์เช่นภาพหน้าจอต่อไปนี้:
เปิดเครื่องรูดไฟล์ .Zip ไฟล์แนบโดยตรงใน Outlook
เป็นเรื่องที่หลีกเลี่ยงไม่ได้ที่คุณจะได้รับไฟล์แนบที่มีข้อความว่า “.zipบางครั้งเราอาจพบไฟล์ที่มีนามสกุล ".zip" ในกรณีนี้ คุณอาจต้องการคลายไฟล์เหล่านั้นโดยตรงจาก Outlook แทนที่จะบันทึกและคลายไฟล์บนไดรฟ์ภายในเครื่อง แม้ว่า Outlook จะไม่มีฟีเจอร์นี้โดยตรง แต่คุณก็ยังสามารถใช้ VBA เพื่อทำสิ่งนี้ได้เช่นกัน สำหรับรายละเอียดเพิ่มเติม โปรดดูบทความอื่น – “วิธีการแตกไฟล์ซิป .Zip ไฟล์แนบโดยตรงใน Outlook ผ่าน VBA"
บทนำผู้เขียน:
Shirley Zhang เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ แก้ไข sql และผลิตภัณฑ์ซอฟต์แวร์ซ่อมแซมแนวโน้ม ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.


