How to Batch Print Envelopes for Multiple Outlook Contacts via VBA

In general, to print envelopes for many Outlook contacts, you can make use of “Mail Merge” feature and MS Word. But it is too tedious. This article will teach you how to accomplish it just via one click.

Actually, in the article “How to Print Envelopes for Multiple Outlook Contacts in Batches”, you can learn a method to bulk print many envelopes. By that means, you have to utilize “Mail Merge”, access MS Word application and select related address blocks and other contact fields. In a nutshell, it is quite tedious and looks pretty complex for Outlook novices. Hence, many users long for a more effective and easier way. Now, in the followings, we will expose a piece of VBA code, which permits users to achieve it simply by one click.

Batch Print Envelopes for Multiple Outlook Contacts via VBA

Batch Print Envelopes for Multiple Outlook Contacts

  1. To start with, launch your Outlook application.
  2. Then in the main Outlook window, press “Alt + F11” key shortcuts.
  3. Next you will enter the “Microsoft Visual Basic for Applications” window.
  4. Subsequently, you need to enable “Microsoft Word Object” in your Outlook.
  • First, click on the “Tools” and choose “References”.
  • Then in the popup dialog box, find out and enable the “Microsoft Word Object Library” option.Enable “Microsoft Word Object”
  1. After that, you need to open a module that isn’t in use or straightly insert a new module.
  2. Then you need to copy the following VBA code into this module.
Sub BatchPrintEnvelope_MultipleContacts()
    Dim objSelection As Outlook.Selection
    Dim objContact As Outlook.ContactItem
    Dim objWordApp As Word.Application
    Dim objWordDocument As Word.Document
    Dim strContactAddress As String
    Dim strReturnAddress As String
    Set objSelection = Outlook.Application.ActiveExplorer.Selection
    'Your name & address
    strReturnAddress = "Amanda Barron" & vbCrLf & "1301 Bank of America Tower Suite 791, 12 Harcourt Road, Central, HONG KONG"
    On Error Resume Next
    For Each objContact In objSelection
        'Contact name & address
        strContactAddress = objContact.FullName & vbCrLf & objContact.MailingAddress
        'Create envelope in MS Word
        Set objWordApp = CreateObject("Word.Application")
        Set objWordDocument = objWordApp.Documents.Add
        With objWordDocument.Envelope
             .Insert Address:=strContactAddress, ReturnAddress:=strReturnAddress
        End With
        objWordDocument.Close False
End Sub

VBA Code - Batch Print Envelopes for Multiple Outlook Contacts

  1. Later you are required to add the new VBA project to Quick Access Toolbar or ribbon for future convenience.
  • For a start, back to the main Outlook window.
  • Then go to “File” > “Options” > “Quick Access Toolbar”.
  • Next add the macro by following the steps shown in the image below:Add Macro to Quick Access Toolbar
  1. Eventually you can have a try.
  • At the beginning, access the contact list.
  • Then select the source contacts in the list.
  • Next hit the macro button in Quick Access Toolbar.
  • At once, the macro will work.
  • Lastly, you will get the printed envelopes for all the source contacts. They will look like the screenshot below:Printed Envelope

Cope with Frustrating PST Issues Flexibly

Perhaps you’ve come across several issues during using your Outlook. Generally, Outlook is able to recover on its own. But if you encounter serious troubles, like Outlook corruption, you still can recur to inbox repair tool. Assuming that it fails too, it is suggested to apply a more potent utility, like 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 recover Sql Server and outlook repair software products. For more information visit

Comments are closed.