How to only print attachment(s) from one email or selected emails in Outlook?
In Outlook, you can print the emails, but have you printed the attachments only from one email or selected emails in Outlook? In this article, I introduce the tricks on solving this job.
Only print attachment(s) from one email with Quick Print
Only print attachment(s) from selected emails with VBA
Only print attachment(s) from one email with Quick Print
To print the attachments only without email body, you can use the Quick Print function.
1. In the message window, right click at the attachment you want to print, select Quick Print from the context menu.
2. Then click Save > Save to save the attachment file in a location.
3. Now go to the location you placed the attachment file, and open the file to print as usual.
Only print attachment(s) from selected emails with VBA
If you want to print the attachments from selected emails, you can use VBA code.
1. Select the emails you want to print the attachments, press Alt + F11 keys to enable Microsoft Visual Basic for Applications window.
2. Double click ThisOutlookSession from Project1 pane, copy and paste below code to the script.
VBA:Print attachments from selected emails
Sub BatchPrintAllAttachmentsInMultipleEmails()
'UpdatebyExtendoffice20180417
Dim xFSO As Scripting.FileSystemObject
Dim xTmpFldPath As String
Dim xSelection As Outlook.Selection
Dim xItem As Object
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim xShell As Object
Dim xTempFolder As Object
Dim xTempFolderItem As Object
Dim xFilePath As String
On Error Resume Next
Set xFSO = CreateObject("Scripting.FileSystemObject")
xTmpFldPath = xFSO.GetSpecialFolder(2).Path & "\Temp for Attachments"
If xFSO.FolderExists(xTmpFldPath) = False Then
xFSO.CreateFolder xTmpFldPath
End If
Set xSelection = Outlook.Application.ActiveExplorer.Selection
Set xShell = CreateObject("Shell.Application")
Set xTempFolder = xShell.NameSpace(0)
For Each xItem In xSelection
If xItem.Class = olMail Then
Set xMailItem = xItem
If xMailItem.Attachments.Count = 0 Then Exit Sub
Set xAttachments = xMailItem.Attachments
For Each xAttachment In xAttachments
xFilePath = xTmpFldPath & "\" & xAttachment.FileName
xAttachment.SaveAsFile (xFilePath)
Set xTempFolderItem = xTempFolder.ParseName(xFilePath)
xTempFolderItem.InvokeVerbEx ("print")
Next
End If
Next
'If xFSO.FolderExists(xTmpFldPath) Then
' xFSO.DeleteFolder xTmpFldPath, True
'End If
End Sub
3. Then click Tools > References, and in the References dialog, check Microsoft Scripting Runtime checkbox.
4. Click OK, then press F5 key to print all attachments in the selected emails in bulk.
Note: If the attachment is picture, it will pop out a Print Pictures dialog first, click Print to go to the Save Print Output As dialog.
Best Office Productivity Tools
Kutools for Outlook - Over 100 Powerful Features to Supercharge Your Outlook
✔ Email Automation: Auto Reply (Out of Office) / Schedule Send emails / Auto CC/BCC / Advanced Auto Forward / Auto Add Greating ...
✉ Email Management: Easily Recall Emails / Block Scam Emails / Delete Duplicate Emails / 🔎Advanced Search / Consolidate Folders ...
📁 Attachments Pro: Batch Save / Batch Detach / Batch Compress / Auto Save / Auto Detach / Auto Compress ...
🌟 Interface & Interaction Magic: 😊More Pretty and Cool Emojis / Brings Browser Tabs Right Into Your Outlook / Minimize Outlook Instead of Closing ...
👍 One-click Wonders: Reply All with Incoming Attachments / Anti-Phishing Emails / 🕘Show Sender's Time Zone / Send to Recipients Separately ...
👩🏼🤝👩🏻 Contacts & Calendar: Batch Add Contacts From Selected Emails / Split a Contact Group to Individual Groups / Remove Birthday Reminders ...
Over 100 Features Await Your Exploration! Click Here to Discover More.



