In order to save printer ink and paper, some users wish to print all images attached in an email on one page only, instead of one image per page. Now, this article will share a means to realize it.
As we all know, printing images is quite wasting printer ink. Thus, so as to save printer ink and paper, maybe you prefer printing many image attachments on the same page instead of printing images on separate pages. Though Outlook doesn’t offer such a feature, you still can achieve it by the following means.

Print All Image Attachments of an Outlook Email on One Page Only
- To start with, launch your Outlook application.
- Then, in the Outlook window, tap on the “Alt + F11” key buttons.
- Next, you’ll get into the “Microsoft Visual Basic for Applications” window, in which you have to firstly enable “Microsoft Word Object Library”.
- After that, you need to open a module that is not being used.
- Subsequently, copy and paste the following VBA code into this module.
Sub PrintAllImageAttachmentsOnOnePage()
Dim objSourceMail As Outlook.MailItem
Dim objAttachment As Outlook.Attachment
Dim objTempMail As Outlook.MailItem
Dim objTempDocument As Word.Document
Dim objWordApp As Word.Application
Dim strImage As String
Dim objImage As Word.InlineShape
Select Case Outlook.Application.ActiveWindow.Class
Case olInspector
Set objSourceMail = ActiveInspector.currentItem
Case olExplorer
Set objSourceMail = ActiveExplorer.Selection.Item(1)
End Select
If Not (objSourceMail Is Nothing) Then
'Create a temp mail
Set objTempMail = Outlook.Application.CreateItem(olMailItem)
objTempMail.Display
Set objTempDocument = objTempMail.GetInspector.WordEditor
Set objWordApp = objTempDocument.Application
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
For Each objAttachment In objSourceMail.attachments
'Get the Image attachments, instead of inserted Images
If IsEmbedded(objAttachment) = False Then
Select Case LCase(objFileSystem.GetExtensionName(objAttachment.filename))
Case "jpg", "jpeg", "png", "bmp", "gif"
strImage = "E:\" & objAttachment.filename
objAttachment.SaveAsFile strImage
'Insert the images into the temp mail
Set objImage = objWordApp.Selection.InlineShapes.AddPicture(filename:=strImage, LinkToFile:=False, SaveWithDocument:=True)
objWordApp.Selection.TypeText Text:=" "
'shrink the images to insure that they are on one page
objImage.ScaleHeight = 20
objImage.ScaleWidth = 20
Kill strImage
End Select
End If
Next
objTempMail.PrintOut
objTempMail.Close olDiscard
End If
End Sub
Function IsEmbedded(objCurAttachment As Outlook.Attachment) As Boolean
Dim objPropertyAccessor As Outlook.propertyAccessor
Dim strProperty As String
Set objPropertyAccessor = objCurAttachment.propertyAccessor
strProperty = objPropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E")
If InStr(1, strProperty, "@") > 0 Then
IsEmbedded = True
Else
IsEmbedded = False
End If
End Function
- Later, you can back to the email list. Choose or open an email whose picture attachments you want to print out.
- Then, trigger this macro. In the current macro window, just press “F5” key or click the “Run” icon in the toolbar.
- Finally, when the macro finishes running, all image attachments of the source email will be printed out on one page, like the following screenshot:
Deal with Corrupted Outlook Files
With more and more data stored in your Outlook, your Outlook file be increasing vulnerable. It can get compromised due to various internal and external factors. Also, it is difficult to predict Outlook corruption. So, what you can do is to insure immediate and effective rescue when meeting Outlook corruptions. For instance, you have to keep a specialized PST repair tool, like DataNumen Outlook Repair in vicinity. It will scan and restore damaged files like a breeze.
Author Introduction:
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including recover Sql Server and outlook repair software products. For more information visit www.datanumen.com

