Note: The other languages of the website are Google-translated. Back to English

จะพิมพ์ไฟล์แนบทั้งหมดในอีเมลเดียว / หลายฉบับใน Outlook ได้อย่างไร

ดังที่คุณทราบจะพิมพ์เฉพาะเนื้อหาอีเมลเช่นส่วนหัวเนื้อหาเมื่อคุณคลิกไฟล์ เนื้อไม่มีมัน > พิมพ์ ใน Microsoft Outlook แต่ไม่พิมพ์ไฟล์แนบ ที่นี่เราจะแสดงวิธีพิมพ์ไฟล์แนบทั้งหมดในอีเมลที่เลือกอย่างสะดวกสบายใน Microsoft Outlook


พิมพ์ไฟล์แนบทั้งหมดในข้อความอีเมลทีละรายการ

Microsoft Outlook ให้เราด้วย พิมพ์ด่วน ซึ่งสามารถช่วยคุณพิมพ์ไฟล์แนบในข้อความอีเมลทีละไฟล์

1. เลือกข้อความอีเมลที่มีไฟล์แนบที่คุณจะพิมพ์ในภายหลัง

2. คลิกไฟล์แนบหนึ่งไฟล์ในอีเมลนี้

3. คลิก พิมพ์ด่วน ปุ่มใน สถานะ กลุ่มใน Attachments แถบ

หมายเหตุ: เครื่องมือแนบ จะไม่เปิดใช้งานจนกว่าคุณจะคลิกไฟล์แนบในอีเมล

4. กล่องโต้ตอบการเปิดไฟล์แนบจะปรากฏขึ้นและโปรดคลิก จุดเปิด ปุ่ม

โปรดทราบว่าขั้นตอนนี้จะเปิดไฟล์แนบที่เลือกและพิมพ์ไฟล์แนบที่เลือกนี้พร้อมกัน

หากต้องการพิมพ์ไฟล์แนบอื่น ๆ ในอีเมลนี้โปรดทำซ้ำขั้นตอนที่ 2 ถึงขั้นตอนที่ 4

บันทึก / ส่งออกไฟล์แนบทั้งหมดอย่างรวดเร็วจากอีเมลหลายฉบับใน Outlook

โดยปกติเราสามารถบันทึกไฟล์แนบจากอีเมลเดียวโดยเปิดใช้งานไฟล์ เครื่องมือแนบ และใช้ไฟล์ บันทึกไฟล์แนบทั้งหมด คุณลักษณะใน Outlook แต่จะเกิดอะไรขึ้นถ้าบันทึกไฟล์แนบจากอีเมลหลายฉบับหรือจากโฟลเดอร์อีเมลทั้งหมดใน Outlook? ลองใช้ Kutools สำหรับ Outlook บันทึกทั้งหมด (ไฟล์แนบ)


บันทึกไฟล์แนบในอีเมลหลายฉบับ kto9

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

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

1. เลือกข้อความอีเมลที่มีไฟล์แนบที่คุณจะพิมพ์ในภายหลัง

2. ใน Outlook 2010 หรือเวอร์ชันที่ใหม่กว่าโปรดคลิกไฟล์ เนื้อไม่มีมัน > พิมพ์ > ตัวเลือกการพิมพ์. ดูภาพหน้าจอต่อไปนี้:

3. ในกล่องโต้ตอบการพิมพ์ โปรดตรวจสอบ พิมพ์ไฟล์แนบ เอกสารแนบจะพิมพ์ไปยังเครื่องพิมพ์เริ่มต้นเท่านั้น ตัวเลือกใน ตัวเลือกการพิมพ์ มาตรา.

4. คลิก พิมพ์ ปุ่ม

5. ในกล่องโต้ตอบเปิดสิ่งที่แนบมากับจดหมายที่เปิดขึ้นมาโปรดคลิกที่ไฟล์ จุดเปิด เพื่อดำเนินการต่อ (หมายเหตุ: กล่องโต้ตอบนี้จะปรากฏขึ้นสำหรับไฟล์แนบแต่ละไฟล์แยกกัน)

ตอนนี้สิ่งที่แนบมาทั้งหมดในข้อความอีเมลที่เลือกนี้จะถูกพิมพ์พร้อมกัน


พิมพ์ไฟล์แนบและรูปภาพทั้งหมดเป็นชุดในอีเมลที่เลือกหลายฉบับ

หากต้องการพิมพ์เอกสารแนบทั้งหมดในอีเมลหลายฉบับรวมถึงรูปภาพทั้งหมดในเนื้อหาข้อความใน Outlook โปรดทำตามขั้นตอนด้านล่างเพื่อใช้รหัส VBA

1. ในรายชื่อผู้รับจดหมายโปรดถือ Ctrl or เปลี่ยน ปุ่มเพื่อเลือกอีเมลหลายฉบับที่คุณจะพิมพ์ไฟล์แนบ

2. กด อื่น ๆ + F11 คีย์ร่วมกันเพื่อเปิดหน้าต่าง Microsoft Visual Basic for Applications

3. ในหน้าต่าง Microsoft Visual Basic for Applications คลิก เครื่องมือ > อ้างอิง. แล้วตรวจสอบ รันไทม์การเขียนสคริปต์ของ Microsoft ตัวเลือกที่แสดงด้านล่าง เสร็จแล้วคลิก OK.

4. คลิก สิ่งที่ใส่เข้าไป > โมดูลแล้ววางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลใหม่

VBA: พิมพ์ไฟล์แนบทั้งหมดในอีเมล Outlook หลายฉบับ

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/03
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        xFilePath = xTempFldPath & "\" & xAttachment.FileName
        xAttachment.SaveAsFile (xFilePath)
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

5 กด F5 หรือคลิกปุ่ม วิ่ง ปุ่มเพื่อเรียกใช้โค้ด VBA นี้ ตอนนี้ คุณจะเห็นว่าสิ่งที่แนบมาทั้งหมดในอีเมลที่เลือกและรูปภาพในเนื้อหา meesage ถูกพิมพ์ออกมา

หมายเหตุ

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

พิมพ์เอกสารแนบทั้งหมดเป็นชุดในอีเมลที่เลือกหลายฉบับ ยกเว้นรูปภาพในเนื้อหา

หากต้องการพิมพ์เฉพาะไฟล์แนบในอีเมลหลายฉบับแต่รูปภาพในเนื้อหาข้อความใน Outlook โปรดทำตามขั้นตอนด้านล่างเพื่อใช้โค้ด VBA

1. ในรายชื่อผู้รับจดหมายโปรดถือ Ctrl or เปลี่ยน ปุ่มเพื่อเลือกอีเมลหลายฉบับที่คุณจะพิมพ์ไฟล์แนบ

2. กด อื่น ๆ + F11 คีย์ร่วมกันเพื่อเปิดหน้าต่าง Microsoft Visual Basic for Applications

3. ในหน้าต่าง Microsoft Visual Basic for Applications คลิก เครื่องมือ > อ้างอิง. แล้วตรวจสอบ รันไทม์การเขียนสคริปต์ของ Microsoft ตัวเลือกที่แสดงด้านล่าง เสร็จแล้วคลิก OK.

4. คลิก สิ่งที่ใส่เข้าไป > โมดูลแล้ววางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลใหม่

VBA: พิมพ์ไฟล์แนบทั้งหมดในอีเมล Outlook หลายฉบับ

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

5 กด F5 หรือคลิกปุ่ม วิ่ง ปุ่มเพื่อเรียกใช้โค้ด VBA นี้ ตอนนี้ คุณจะเห็นว่าสิ่งที่แนบมาทั้งหมดในอีเมลที่เลือกถูกพิมพ์ออกมา

หมายเหตุ

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

 


การสาธิต: พิมพ์ไฟล์แนบหนึ่งไฟล์หรือทั้งหมดในอีเมล Outlook


ปลาย: ในวิดีโอนี้ Kutools เพิ่มแท็บโดย Kutools สำหรับ Outlook. หากคุณต้องการโปรดคลิก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม เพื่อทดลองใช้ฟรี 60 วันโดยไม่มีข้อ จำกัด !


Kutools สำหรับ Outlook - นำคุณลักษณะขั้นสูง 100 รายการมาสู่ Outlook และทำให้การทำงานง่ายขึ้นมาก

  • CC อัตโนมัติ / BCC ตามกฎเมื่อส่งอีเมล ส่งต่ออัตโนมัติ อีเมลหลายฉบับโดยกำหนดเอง ตอบอัตโนมัติ ไม่มีเซิร์ฟเวอร์แลกเปลี่ยนและคุณสมบัติอัตโนมัติอื่น ๆ ...
  • คำเตือน BCC - แสดงข้อความเมื่อคุณพยายามตอบกลับทั้งหมด หากที่อยู่อีเมลของคุณอยู่ในรายการ BCC; เตือนเมื่อไม่มีไฟล์แนบและคุณสมบัติการเตือนอื่น ๆ ...
  • ตอบกลับ (ทั้งหมด) พร้อมไฟล์แนบทั้งหมดในการสนทนาทางไปรษณีย์; ตอบกลับอีเมลจำนวนมาก ในไม่กี่วินาที เพิ่มคำทักทายอัตโนมัติ เมื่อตอบกลับ; เพิ่มวันที่ในหัวเรื่อง ...
  • เครื่องมือแนบ: จัดการไฟล์แนบทั้งหมดในอีเมลทั้งหมด ถอดอัตโนมัติ, บีบอัดทั้งหมด, เปลี่ยนชื่อทั้งหมด, บันทึกทั้งหมด ... รายงานด่วน, นับอีเมลที่เลือก...
  • อีเมลขยะที่มีประสิทธิภาพ ตามธรรมเนียม; ลบอีเมลและผู้ติดต่อที่ซ้ำกัน... ช่วยให้คุณทำงานได้อย่างชาญฉลาดขึ้นเร็วขึ้นและดีขึ้นใน Outlook
shot kutools outlook แท็บ kutools 1180x121
shot kutools Outlook kutools plus แท็บ 1180x121
 
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (23)
ได้รับคะแนน 5 จาก 5 · การจัดอันดับ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้มีประโยชน์มาก แต่ไม่ได้ช่วยฉันด้วย Office 365
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันสามารถหาส่วนนี้เองได้ สิ่งที่ฉันพยายามหาคือเหตุผลที่ แม้จะทำเช่นนั้น ไฟล์แนบก็ไม่พิมพ์ออกมา ข้อความแสดงข้อผิดพลาดปรากฏขึ้นสำหรับแต่ละไฟล์แนบที่ถามว่าฉันต้องการ "เปิด" หรือ "บันทึก" การเลือกตัวเลือกใดตัวเลือกหนึ่งจะทำให้เกิดผลลัพธ์เหล่านั้น กล่าวคือ ยังไม่มีการพิมพ์ เพียงแค่เปิดหรือบันทึก ฉันมีไฟล์แนบ 20 ฉบับจาก 4 อีเมล ฉันไม่ต้องการที่จะเปิดเอกสาร 80 ฉบับเพื่อที่จะสามารถพิมพ์ได้ เห็นได้ชัดว่ามีการตั้งค่าความปลอดภัย "ช่วยฉันจากตัวฉันเอง" บางอย่างที่ต้องกำจัดทิ้ง เพื่อให้ฉันสามารถใช้คอมพิวเตอร์ของตัวเองและระบบปฏิบัติการที่ฉันซื้อและชำระเงินได้ นั่นคือสิ่งที่ฉันต้องรู้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ดับเบิลคลิกที่อีเมลเพื่อ "ป็อปเอาท์" ด้วยตัวเอง คลิกขวาที่ไฟล์แนบ แล้วคลิก "เลือกทั้งหมด" จากนั้น "พิมพ์ด่วน"
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เห็นด้วยกับลีอาห์ วิธีนี้ใช้ไม่ได้ผล มันแค่พิมพ์เนื้อหาหลักของอีเมลและไฟล์แนบแรกเท่านั้น ไม่ใช่ทั้งหมด ต้องการคำแนะนำเกี่ยวกับวิธีการพิมพ์ทั้งหมดโดยใช้ตัวเลือก "เลือกทั้งหมด" ที่แสดงด้านบน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หากคุณต้องการพิมพ์เอกสารแนบทั้งหมดพร้อมกันในอีเมลฉบับเดียว ให้ทำดังนี้ ขั้นแรกให้สร้างโฟลเดอร์บนเดสก์ท็อปของคุณ....ฉันตั้งชื่อของฉันว่า "print" ไปที่อีเมลพร้อมไฟล์แนบ.... ไฮไลต์ไฟล์แนบทั้งหมด คลิกขวา บันทึกไฟล์แนบทั้งหมดลงในโฟลเดอร์การพิมพ์ เปิดโฟลเดอร์พิมพ์.....เน้นทั้งหมด.....คลิกขวา.....พิมพ์



ตอนนี้ถ้าฉันสามารถหาวิธีพิมพ์เอกสารแนบทั้งหมดในอีเมล 200 ฉบับโดยไม่ต้องเปิดแต่ละไฟล์แล้วพิมพ์ออกมา
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Kutools สำหรับ Outlook's แยกทั้งหมด (สิ่งที่แนบมา) ช่วยให้คุณสามารถดาวน์โหลดไฟล์แนบทั้งหมดจากอีเมลหลายฉบับด้วยการคลิกหลายครั้ง! https://www.extendoffice.com/product/kutools-for-outlook/outlook-detach-attachments.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หาก pdf มีชื่อเดียวกันกับมาโครพิมพ์เพียง pdf เดียว ฉันจะเปลี่ยนรหัสเพื่อแก้ไขชื่อ pdf ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัส VBA ให้ไวยากรณ์เป็นข้อผิดพลาด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ในบรรทัดที่ 9 การลบ "On Error Resume Next" ใช้งานได้สำหรับฉัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช่สิ่งนี้ก็ใช้ได้สำหรับฉันเช่นกัน ขอขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอขอบคุณ 
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันใช้ทางลัดนี้มาสองสามสัปดาห์แล้ว พิมพ์เอกสารแนบทั้งหมดจากอีเมลหลายฉบับพร้อมกัน และเมื่อเร็ว ๆ นี้ฉันต้องลบบรรทัดที่ 9 ตามที่ Nilanka กล่าวซึ่งใช้งานได้ แต่วิธีนี้ใช้ไม่ได้อีกต่อไป ฉันได้รับกล่องคำเตือนว่ามาโครในโครงการนี้ถูกปิดใช้งาน ..... และอื่น ๆ ... หากมีใครมีวิธีแก้ไขในการทำงานเหมือนที่เคยเป็นมาก่อนหน้านี้ได้โปรด lmk ขณะที่ฉันกำลังเลือกประมาณ 60 อีเมลทั้งหมดที่มีไฟล์แนบที่จะพิมพ์ ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้ใช้ได้สำหรับฉัน: https://www.extendoffice.com/documents/outlook/1368-outlook-enable-disable-macros.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีทุกคน เราได้อัปเดตโค้ด VBA ในบทช่วยสอนเมื่อ 2022/08/03 หากคุณยังคงต้องพิมพ์เอกสารแนบทั้งหมด โปรดตรวจสอบรหัสใหม่ 😊
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ใช้งานได้ดีสำหรับฉันเมื่อวานนี้ แต่ตอนนี้มันบอกว่า 'มาโครในโครงการนี้ถูกปิดใช้งาน' มีคำแนะนำวิธีเปิดใช้งานหรือไม่ 
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้ใช้ได้สำหรับฉัน: https://www.extendoffice.com/documents/outlook/1368-outlook-enable-disable-macros.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Vielen, vielen Dank dafür! Hat uns enorm viel Arbeit erspart.Auch ich musste - wie bereits in den Kommmentaren geschrieben - die neunte Zeile "Dim xAttachment As Outlook.Attachment On Error Resume Next" ที่ด้านบน, dann lief der Code dinfandfrei
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี, ich möchte nur den Anhang der Mails von der angegebenen ที่อยู่ที่ส่ง, wie kann ich das machen, danke
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันใช้ Microsoft 365 และใช้งานได้หลังจากลบบรรทัดที่ 9 ขอบคุณ! สิ่งนี้ช่วยประหยัดเวลาได้เล็กน้อยสำหรับฉัน
ได้รับคะแนน 5 จาก 5
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียนทั้งหมด

ฉันได้ลองใช้ VBA แล้วและโค้ดทำงาน แต่ป๊อปอัปจำนวนมากกำลังเปิดบนหน้าจอเพื่อพิมพ์รูปภาพจากลายเซ็นเมล (เห็นได้ชัดว่านี่เป็นไฟล์แนบ) ใครรู้วิธีแก้บ้าง?

S.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,

ขออภัยที่การพิมพ์ภาพจะแสดงป๊อปอัป คุณจะต้องยืนยันแต่ละภาพเพื่อดาวน์โหลดภาพทั้งหมด หากคุณไม่ต้องการพิมพ์ภาพ โปรดคลิกยกเลิก

อแมนดา
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หากคุณไม่ต้องการพิมพ์รูปภาพในเนื้อความของข้อความ โปรดใช้รหัสด้านล่าง:
Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน อแมนด้า

ขอบคุณสำหรับรหัส มันได้ผล!

S.
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL