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

如何在Outlook中以一封/多封電子郵件打印所有附件?

如您所知,當您單擊電子郵件時,它將僅打印電子郵件內容,例如標題,正文 文件 > 列印 在Microsoft Outlook中,但不打印附件。 在這裡,我們將向您展示如何在Microsoft Outlook中輕鬆打印所選電子郵件中的所有附件。


一張一張打印一封電子郵件中的所有附件

Microsoft Outlook為我們提供了 快速打印 功能,可以幫助您一一打印電子郵件中的附件。

1。 選擇您稍後將打印附件的電子郵件。

2。 單擊此電子郵件中的一個附件。

3。 點擊 快速打印 按鈕在 動態 組上 附件 標籤。

注意: 附件工具 在您單擊電子郵件中的附件之前,不會激活它。

4. 出現打開郵件附件對話框,請單擊 已提交 按鈕。

請注意,此步驟將打開選定的附件,並同時打印此選定的附件。

要打印此電子郵件中的其他附件,請重複步驟2至步驟4。

在Outlook中快速保存/導出多封電子郵件中的所有附件

通常,我們可以通過激活以下電子郵件來保存一封電子郵件中的附件 附件工具 並應用 保存所有附件 Outlook中的功能。 但是,如果從多封電子郵件或Outlook中的整個郵件文件夾中保存附件怎麼辦? 嘗試使用Kutools for 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 代碼。 現在您將看到所選電子郵件中的所有附件和消息正文中的圖片都已打印出來。

備註:

  • 每個圖像都會彈出一個對話框,要求您確認打印。 而其他類型的文件將直接打印。
  • 如果電子郵件簽名中有圖像,它們也會彈出對話框。
  • 如果你得到 此項目中的宏已禁用 錯誤,請查看本教程: 如何在 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 for Outlook。 如果需要,請單擊 這裡 免費試用60天!


Kutools for Outlook-為Outlook帶來100個高級功能,並使工作更加輕鬆!

  • 自動CC / BCC 根據規則發送電子郵件; 自動前進 自定義多封電子郵件; 自動回复 沒有交換服務器,還有更多自動功能...
  • BCC警告 -當您嘗試全部答复時顯示消息 如果您的郵件地址在“密件抄送”列表中; 缺少附件時提醒,還有更多提醒功能...
  • 在郵件對話中回复(全部)帶有所有附件; 回复許多電子郵件 片刻之間; 自動添加問候語 回复時將日期添加到主題中...
  • 附件工具:管理所有郵件中的所有附件, 自動分離, 全部壓縮,重命名全部,保存全部...快速報告, 計算選定的郵件...
  • 強大的垃圾郵件 習俗 刪除重複的郵件和聯繫人... 使您能夠在Outlook中做得更聰明,更快和更好。
拍攝kutools前景kutools選項卡1180x121
拍攝kutools前景kutools加標籤1180x121
 
按評論排序
留言 (23)
5中的5評分 · 1評級
網站主持人對此評論進行了最小化
這非常有用,但對 Office 365 沒有幫助??
網站主持人對此評論進行了最小化
我可以自己弄清楚這部分 - 我想弄清楚為什麼儘管這樣做,但附件不會打印。 每個附件都會彈出一條錯誤消息,詢問我是要“打開”還是“保存”。 選擇任何一個選項都會產生這些結果 - 換句話說,仍然沒有打印,只是打開或保存。 我有來自 20 封電子郵件的 4 個附件。 我真的不想為了能夠打印它們而打開 80 個文檔。 顯然有一些“拯救我自己”的安全設置需要被刪除,以便我可以使用我自己的計算機和我購買並支付的操作系統。 這就是我需要知道的。
網站主持人對此評論進行了最小化
雙擊電子郵件以自行“彈出”。 右鍵單擊其中一個附件,然後單擊“全選”,然後單擊“快速打印”。
網站主持人對此評論進行了最小化
同意莉亞,這行不通。 它只是打印出電子郵件的主體和第一個附件,而不是全部。 需要有關如何使用上面顯示的“全選”選項打印它們的說明。
網站主持人對此評論進行了最小化
如果您想在 1 封電子郵件中一起打印所有附件,請執行以下操作。 首先在您的桌面上創建一個文件夾......我將我的命名為“打印”。 轉到帶有附件的電子郵件....突出顯示所有附件,右鍵單擊,將所有附件保存到打印文件夾。 打開打印文件夾......突出顯示所有這些......右鍵單擊......打印。



現在,如果我能弄清楚如何打印 200 封電子郵件中的所有附件,而無需打開每一封並打印它。
網站主持人對此評論進行了最小化
Kutools for Outlook 的全部分離(附件)功能可以幫助您單擊幾下從多封電子郵件中下載所有附件! https://www.extendoffice.com/product/kutools-for-outlook/outlook-detach-attachments.html
網站主持人對此評論進行了最小化
如果 pdf 具有相同的名稱,宏只打印一個 pdf,我如何更改代碼以修改 pdf 名稱?
網站主持人對此評論進行了最小化
VBA 代碼給出的語法是錯誤的
網站主持人對此評論進行了最小化
在第 9 行,刪除“On Error Resume Next”對我有用。
網站主持人對此評論進行了最小化
是的,這也對我有用。 謝謝!
網站主持人對此評論進行了最小化
謝謝 
網站主持人對此評論進行了最小化
嗨,我已經使用這個快捷方式幾個星期了,一次打印多封電子郵件中的所有附件,我最近不得不像 Nilanka 所說的那樣刪除第 9 行,這一直有效,但這不再有效。 我收到警告框說這個項目中的宏被禁用......等等......如果有人有一個解決方案可以讓這個工作像以前一樣,請lmk,因為我選擇大約60所有包含要打印的附件的電子郵件。 謝謝
網站主持人對此評論進行了最小化
網站主持人對此評論進行了最小化
大家好,我們在 2022/08/03 更新了教程中的 VBA 代碼。 如果您仍需要打印所有附件,請檢查新代碼。 😊
網站主持人對此評論進行了最小化
嗨,這昨天對我來說很好,但現在它說“這個項目中的宏被禁用”有什麼建議如何啟用它們嗎? 
網站主持人對此評論進行了最小化
網站主持人對此評論進行了最小化
Vielen, vielen Dank dafür! Hat uns enorm viel Arbeit erspart.Auch ich musste - wie bereits in den Kommentaren geschrieben - die neunte Zeile "Dim xAttachment As Outlook.Attachment On Error Resume Next" entfernen, dann lief der Code einfandfrei durch。
網站主持人對此評論進行了最小化
你好, ich möchte nur den Anhang der Mails von der angegebenen Adresse senden, wie kann ich das machen, danke
網站主持人對此評論進行了最小化
我正在使用 Microsoft 365,這在刪除第 9 行後有效。謝謝! 這為我節省了一些時間。
網站主持人對此評論進行了最小化
親愛的,

我已經嘗試過 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 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護