Excel First

Excel Solutions

Use Excel to Create Mass Letters


This article describes how to create mass letters from Excel, using a Microsoft Word Document as the letter template and a Map between Excel Defined Names and Word Document Bookmarks.


Starting from the example described in this article, there are numerous things that can be done: if we setup the same bookmarks in Multiple Word Documents, and if we use a multi-select dialog box to open and fill all those selected documents, we can create A SET of different documents for each recipient! Of course, all letters can be attached to an email and sent to that recipient email.

Most of the times,

It should be obvious you first need to create an Excel Table containing the name, physical address, email address, and other pertinent information that is to be inserted into the letter/email of all your intended recipients.

To create a letter for all recipients from your table, a Mail Merge will be all you need. But there are many scenarios where you need flexibility:

  •  you may want to create a letter for only 1 recipient, without going through all Mail Merge steps;
  • or you need to select a range of rows and create letters for all selected rows,
  • or, you may want to filter the table for different criteria, and create letters just for visible rows,
  • Create Letter for each row in table.

The following will cover all these scenarios, the letters will be saved as PDF files.

The key of this solution is a Map between Excel Defined Names and Word Document Bookmarks.

You can download the sample files from here:

Download: Create Individual or Mass Letters.xlsm
Download: Sample Letter.docx

How to Set Up the Map Between Excel Defined Names and Word Bookmarks:

Map Defined Names to Bookmarks

Map Defined Names to Bookmarks

In Map Table, each cell from column B has a defined name, listed in column A. The code will look in the list of defined names from column A, and will try to find a bookmark with the same name in the Word Document you indicated.

Add a bookmark for each duplicate field, but make sure that the bookmark name is present in all duplicates: use duplicate bookmark names like this: RecipientName , RecipientName1, RecipientName2, or even RecipientNamea, RecipientNameb and so on; the code will look for the main part: RecipientName and will send data to any bookmark that has a name starting with this, you can add any suffix you want. Create Duplicate bookmarks for any fields you need.

And the most important thing: make sure that the bookmarks are visible, this way you will be able to see those square brackets that identifies a bookmark, to avoid deleting them when editing the document… From Word Options, Advanced Tab, check the “Show Bookmarks” checkbox, as in image below:

Show Bookmarks

Show Bookmarks

To Insert a Bookmark,

select the bookmark location text, then go to Insert Tab from ribbon, Links Section – Bookmark command; type the names from Excel Map Table – column A names and click Add. You should be able to see the square brackets that defines a bookmark surrounding your selected text. (that text will be replaced with the values sent from Excel defined names).

To see the list of Bookmarks, use the Ctrl+G (Go To) shortcut, and select Bookmarks from list, like in image below:

Word doc Bookmarks list

Word doc Bookmarks list

There are 2 version of the code for creating the letters, one is for the Worksheet_Change Event, that will create letters only for the selected rows, and the code below, which will create letters for all visible rows from table; if there are no filters applied to table columns, a letter for each row will be created.

Here is the code:

Another very important thing you should always do:

Have fun, this solution will work for you, now you will have more time. Spend it wisely… 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *