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.
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.
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.
- Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by custom; Auto Reply without exchange server, and more automatic features...
- BCC Warning - show message when you try to reply all if your mail address is in the BCC list; Remind When Missing Attachments, and more remind features...
- Reply (All) With All Attachments in the mail conversation; Reply Many Emails in seconds; Auto Add Greeting when reply; Add Date into subject...
- Attachment Tools: Manage All Attachments in All Mails, Auto Detach, Compress All, Rename All, Save All... Quick Report, Count Selected Mails...
- Powerful Junk Emails by custom; Remove Duplicate Mails and Contacts... Enable you to do smarter, faster and better in Outlook.