วิธีพิมพ์เอกสารแนบทั้งหมดในอีเมลหลายฉบับด้วย Outlook VBA

แบ่งปันเลย:

หากคุณต้องการพิมพ์เอกสารแนบทั้งหมดในอีเมลที่เลือกหลายฉบับพร้อมกัน คุณสามารถใช้วิธีการที่แนะนำในบทความนี้ มันกำลังใช้รหัส VBA เพื่อให้บรรลุในเวลารวดเร็ว

อย่างที่คุณเห็น เมื่อคุณเลือกไฟล์แนบเดียว จะมีคุณสมบัติ "พิมพ์ด่วน" โดยตรงในริบบอน "ไฟล์แนบ" อย่างไรก็ตาม เมื่อคุณเลือกไฟล์แนบมากกว่าหนึ่งไฟล์ ปุ่ม "พิมพ์ด่วน" จะถูกปิดใช้งาน ไม่ต้องพูดถึงการพิมพ์ไฟล์แนบทั้งหมดในอีเมลที่เลือกหลายฉบับ ดังนั้น ถ้าคุณต้องการพิมพ์เอกสารแนบทั้งหมดในจดหมายหลายฉบับเป็นชุดในคราวเดียว คุณต้องหาวิธีอื่น เช่น เครื่องมือของบุคคลที่สามหรือ VBA โดยมุ่งเน้นที่ความต้องการนี้ ที่นี่เราจะเปิดเผยโค้ด VBA ให้คุณทราบ ซึ่งจะช่วยให้คุณได้รับโค้ดนั้นง่ายๆ เพียงคลิกเดียว

ชุดพิมพ์เอกสารแนบทั้งหมดในอีเมลหลายฉบับด้วย Outlook VBA

ชุดพิมพ์เอกสารแนบทั้งหมดในอีเมลหลายฉบับ

  1. ในตอนแรกให้เปิดแอปพลิเคชัน Outlook ของคุณ
  2. จากนั้นในหน้าต่างหลัก ให้กดปุ่ม “Alt + F11” เพื่อเข้าถึงตัวแก้ไข VBA
  3. ในหน้าต่าง "Microsoft Visual Basic for Applications" ที่ตามมา ให้เปิดโมดูลว่าง
  4. จากนั้นคัดลอกโค้ด VBA ต่อไปนี้ลงในโมดูลดังกล่าว
Sub BatchPrintAllAttachmentsinMultipleEmails()
    Dim objFileSystem As Object
    Dim strTempFolder As String
    Dim objSelection As Outlook.Selection
    Dim objItem As Object
    Dim objMail As Outlook.MailItem
    Dim objAttachments As Outlook.attachments
    Dim objAttachment As Outlook.Attachment
    Dim objShell As Object
    Dim objTempFolder As Object
    Dim objTempFolderItem As Object
    Dim strFilePath As String
 
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    strTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Attachments " & Format(Now, "YYYY-MM-DD_hh-mm-ss")
    'Create a new temp folder
    MkDir (strTempFolder)
 
    Set objSelection = Outlook.Application.ActiveExplorer.Selection
 
    For Each objItem In objSelection
        If TypeOf objItem Is MailItem Then
           Set objMail = objItem
           Set objAttachments = objMail.attachments
 
           'Save all the attachments in the temp folder
           For Each objAttachment In objAttachments
               strFilePath = strTempFolder & "\" & objAttachment.FileName
               objAttachment.SaveAsFile (strFilePath)
 
               'Print all the files in the temp folder
               Set objShell = CreateObject("Shell.Application")
               Set objTempFolder = objShell.NameSpace(0)
               Set objTempFolderItem = objTempFolder.ParseName(strFilePath)
               objTempFolderItem.InvokeVerbEx ("print")
           Next objAttachment
        End If
    Next
End Sub

รหัส VBA - พิมพ์เอกสารแนบทั้งหมดในจดหมายหลายฉบับ

  1. จากนั้น คุณสามารถเพิ่มแมโครใหม่ลงในแถบเครื่องมือด่วนได้
  2. หลังจากนั้น คุณควรตั้งค่าระดับความปลอดภัยของแมโคร Outlook เป็นระดับต่ำ
  3. ในที่สุดคุณสามารถลอง
  • ประการแรก ในรายการเมล ให้เลือกอีเมลหลายฉบับที่คุณต้องการพิมพ์เอกสารแนบ
  • จากนั้นคลิกที่ปุ่มมาโครใหม่ในแถบเครื่องมือด่วน
  • ถัดไป ไฟล์แนบทั้งหมดในอีเมลที่เลือกจะถูกพิมพ์ออกมา

ระวังไวรัสที่ซ่อนอยู่ในมาโคร

หากคุณได้กำหนดค่าระดับความปลอดภัยของแมโคร Outlook เป็นระดับต่ำ คุณต้องใช้ความพยายามอย่างมากในการบล็อกไวรัสที่อาจเกิดขึ้นในมาโครที่เป็นอันตราย เป็นเพราะไวรัสสามารถทำลายข้อมูล Outlook ของคุณได้ในครั้งเดียว เมื่อข้อมูล Outlook ของคุณเสียหาย คุณจะพยายามอย่างเต็มที่ กู้คืน Outlook ข้อมูลโดยทั้งหมดเช่นการเกิดซ้ำกับเครื่องมือที่มีศักยภาพเช่น DataNumen Outlook Repair.

บทนำผู้เขียน:

Shirley Zhang เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ sql เสียหาย และผลิตภัณฑ์ซอฟต์แวร์ซ่อมแซมแนวโน้ม ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด