如何在 Outlook 中列印單封或多封郵件所包含的所有附件?
眾所周知,在 Microsoft Outlook 中點選檔案> 列印,僅會列印郵件內容(例如標頭、內文),無法列印附件。本文將教您如何輕鬆列印 Microsoft Outlook 中所選郵件的所有附件!
逐一列印單封郵件中的所有附件
Microsoft Outlook 提供快速列印功能,讓您輕鬆逐一列印郵件中的附件!
1. 選取您稍後要列印附件的郵件。
2. 點擊此郵件中的任一附件。

3. 按一下位於附件索引標籤中動作群組的快速列印按鈕。

注意:附件工具在您點選郵件中的附件前,不會被啟用。
4. 此時會彈出「開啟郵件附件」對話方塊,請點擊開啟按鈕。

請注意,此步驟將同時開啟所選附件並立即進行列印。
若要列印此郵件中的其他附件,請重複執行步驟 2 至步驟 4.
快速儲存/匯出 Outlook 中多封郵件的所有附件
一般情況下,我們可以透過啟用附件工具並使用其中的儲存所有附件功能,從單一封郵件儲存附件。但若要從多封郵件,甚至整個郵件資料夾一次儲存所有附件該怎麼辦?立即試用 Kutools for Outlook 的儲存全部(附件)功能,輕鬆提升效率!

批次列印單封郵件中的所有附件
若單封郵件包含多個附件,逐一列印將耗費大量時間。以下方法將協助您輕鬆批量列印所選郵件中的所有附件。
1. 選取您稍後要列印附件的郵件。
2. 在 Outlook 2010 或更新版本中,請點選檔案 > 列印 > 列印選項。請參見下列截圖:

3. 在「列印」對話方塊中,請勾選列印附件。附件僅會傳送至預設印表機選項(位於)列印選項區段)。

4. 點擊列印按鈕。
5. 在彈出的「開啟郵件附件」對話方塊中,請點選開啟按鈕以繼續。(注意:每個附件都會分別彈出此對話方塊。)

現在,這封選定郵件中的所有附件將一次印完。
批次列印多封選定郵件中的所有附件與圖片
若要在 Outlook 中一併列印多封郵件的所有附件與內文圖片,請依下列步驟套用 VBA 程式碼。
1. 在郵件列表中,請按住 Ctrl 或 Shift 鍵,選取多封要列印附件的郵件。
2. 按下 Alt+F11 鍵,即可開啟 Microsoft Visual Basic for Applications 視窗。
3. 在 Microsoft Visual Basic for Applications 視窗中,點選工具 > 參考,勾選下方所示的 Microsoft Scripting Runtime 選項,再點選確定完成設定。

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 或 Shift 鍵,以選取多封您要列印附件的郵件。
2. 按下 Alt+F11 鍵,以開啟 Microsoft Visual Basic for Applications 視窗。
3. 在 Microsoft Visual Basic for Applications 視窗中,按一下工具> 參考。然後勾選下方所示的 Microsoft Scripting Runtime 選項。完成後,按一下確定。

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 郵件中的一個或多個附件
最佳 Office 生產力工具
體驗全新 Kutools for Outlook,內含 100+ 項超強功能!立即點擊下載!
🤖KUTOOLS AI:運用先進 AI 技術,輕鬆處理電子郵件——無論是回覆、摘要、優化、擴充、翻譯還是撰寫郵件,通通一鍵搞定!
📧 郵件自動化:自動答覆(支援 POP 與 IMAP)/預約寄送郵件/寄信時依規則自動抄送密送/自動轉發(高級規則)/自動加入問候語/自動將多收件人郵件拆分為個別訊息……
📨 郵件管理:撤回郵件/依主旨等條件封鎖詐騙郵件/刪除重複郵件/高級搜尋/整合文件夾……
📁 附件專業版:批次儲存/批次解除附加/批次壓縮/自動保存/自動拆離/自動壓縮……
🌟 介面魔法:😊更多精美酷炫表情符號/重要郵件來到時提醒您/最小化 Outlook 而非關閉……
👍 一鍵奇蹟:帶附件全部答復/防釣魚郵件/🕘顯示發送者當前時間時區……
👩🏼🤝👩🏻 聯絡人與行事曆:從選取的郵件中批次新增聯絡人/將聯繫人組拆分為個別群組/移除生日提醒……
用您的慣用語言暢享 Kutools — 完整支援英文、西班牙文、德文、法文、中文等 40 多種語言!
立即一鍵解鎖 Kutools for Outlook!別再等待,馬上下載,全面提升工作效率!


🚀 一鍵下載 — 立即取得所有 Office 增益集
強烈推薦:Kutools for Office(5 合 1)
一鍵下載五個安裝程式,一次完成 — Kutools for Excel、Outlook、Word、PowerPoint 與 Office Tab Pro!立即點擊下載!
- ✅ 一鍵便利:只需一次操作,即可下載全部五個安裝套件!
- 🚀 隨時應對任何 Office 任務:按需安裝所需增益集,立即提升工作效率!
- 🧰 包含:Kutools for Excel/Kutools for Outlook/Kutools for Word/Office Tab Pro/Kutools for PowerPoint