How to Batch Print Envelopes for All Addresses of an Outlook Contact

Outlook supports you to add 3 addresses to a contact, namely business, home and other address. Now, if you want to print envelopes for all addresses of a contact, you can use the way introduced in this article. It can let you realize it in bulk.

When it comes to creating envelopes for contact, “Mail Merge” feature may come to your mind in the first place. Yet, by default, it can only create one envelope for one address of a contact at once. If you would like to batch print envelopes for all the addresses of a contact, you have to utilize other means, such as the following one. By it, you can realize it simply by one click. Now, read on to get its details.

Batch Print Envelopes for All Addresses of an Outlook Contact

  1. To begin with, press “Alt + F11” to access VBA editor in Outlook.
  2. Then, enable “MS Word Object Library” with reference to “How to Add an Object Library Reference in VBA“.
  3. Next, copy and paste the VBA code below into a module.
Dim strMyAddress As String

Sub PrintEnvelopeForAllAddressesOfAContact()
    Dim objContact As Outlook.ContactItem
    'Change to your own address
    strMyAddress = "John Smith" & vbCrLf & "JohnSmith Address"
    'Get the selected contact
    Set objContact = Outlook.Application.ActiveExplorer.Selection.Item(1)
    'Print envelopes for all contact's addresses
    If objContact.BusinessAddress <> "" Then
       Call PrintEnvelope(objContact.FullName, objContact.BusinessAddress)
       If objContact.HomeAddress <> "" Then
          Call PrintEnvelope(objContact.FullName, objContact.HomeAddress)
          If objContact.OtherAddress <> "" Then
             Call PrintEnvelope(objContact.FullName, objContact.OtherAddress)
          End If
       End If
    End If
End Sub

Sub PrintEnvelope(strName As String, strBusiness As String)
    Dim objWordApp As Word.Application
    Dim objWordDocument As Word.Document
    On Error Resume Next
    Set objWordApp = GetObject(, "Word.Application")
    If objWordApp Is Nothing Then
       Set objWordApp = CreateObject("Word.Application")
    End If
    'Create & Print envelopes in MS Word
    Set objWordDocument = objWordApp.Documents.Add
    With objWordDocument.Envelope
         .Insert Address:=strName & vbCrLf & strBusiness, ReturnAddress:=strMyAddress
    End With
    objWordDocument.Close False
End Sub

VBA Code - Batch Print Envelopes for All Addresses of an Outlook Contact

  1. Afterwards, exit VBA editor.
  2. Subsequently, add this new macro to Quick Access Toolbar by following the “Optional Step” in “How to Run VBA Code in Your Outlook“.
  3. Finally, you can try it.
  • First off, select a contact.
  • Then, click the macro button in Quick Access Toolbar.Run Macro on Selected Contact
  • At once, the envelopes for all addresses of this contact will be printed out, as shown in the figure below.Printed Envelopes

Defend Your Outlook Data File

Outlook data file can get corrupt at any time if you do not take good care of it. So, in order to safeguard the file, you need to build some good habits and take some precautions. For instance, you should persist in regular data backup. Moreover, it is necessary to prepare a well-proven and cutting-edge PST fix utility handy, such as DataNumen Outlook Repair.

Author Introduction:

Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including SQL Server repair and outlook repair software products. For more information visit

Comments are closed.