Resting Anchor

The Anchorage

Personal website of Gregory K. Maxey, Commander USN (Retired)

Repeating Data
 (or populating multiple like fields)
(A Microsoft Word Help & Tip page by Gregory K. Maxey)

DISCLAIMER/TERMS OF USE

The information, illustrations and code contained in my "Microsoft Word Tips" are provided free and without risk or obligation.

Click to acces PayPal Verification Service Click to acces PayPal Verification Service

However, the work is mine. If you use it for commercial purposes or benefit from my efforts through income earned or time saved then a donation, however small, will help to ensure the continued availability of this resource.

If you would like to donate, please use the appropriate donate button to access PayPal. Thank you!


This Microsoft Word Tips & Microsoft Word Help page offers several solutions to the question, "How do I enter data in one place in a document and have it automatically repeated in other places?" My intention is not to reinvent the wheel, so after a brief introduction I may simply send you on to an existing tips page or other web article containing full explanations of some of the more comprehensive methods. See section 7, Content Controls, if you want to go directly to information about the new Content Controls introduced in Word 2007.

1. Userform

A Userform provides a graphical User Interface (UI) with a document template which you can use to prompt your document user to enter all pertinent data.  User entered data is then populated in one or multiple locations in the document.

2. On-Line Form

If you find a Userform daunting, or if you want to avoid VBA and macros, then you might try a Word on-line (protected) form.

On-Line Form demonstration

Site Note IconNote: While this demonstration and illustrations were created using Word 2003, the method is wholly functional in Word 2007/2010.  If you plan to use On-line (protected) forms in Word 2007/2010 see my: Classic Form Controls.

Site Note IconNote: Text1 is the default name for the first text form field inserted in the document. You can change this name to practically whatever you want to better suit your application.

repeating data 1

repeating data 2

Site Note IconNote:  When adding your REF fields remember they must point to the correct target.  If you rename your form field's bookmark name (e.g., from Text1 to Customer) then your REF field must point to Customer e.g., {REF Customer }.

Site Note IconBonus Tip: You can quickly enter REF fields by typing and selecting "REF Text1" (excluding the quotes) and then pressing CTRL+F9.

repeating data 3

repeating data 4

1. In the introduction to this section I stated that Word will fill in or populate "most" other designated "like" fields automatically. REF fields that are located outside the main text range of the document (e.g., headers, footers, text boxes, etc.) will not automatically update on exit from the field. However, there are some well suited work a rounds. You can use a STYLEREF field as described in MVP Suzanne Barnhill's presentation on STYLEREF fields, or you can run a macro on exit from the field that will update all of the fields, including REF Fields, anywhere in a document. For more on macros for working with the field collection in Word, see: Field Macros.

2. For reasons too complicated to go into here, REF and other field codes will not be updated using "calculate on exit" if the REF field follows a TOC field in the document. Provided that you don't need the TOC to update after protecting the document, you can simply lock the TOC field (select it and press CTRL+F11) before protecting the document. When you need to update the TOC you can unprotect the form and unlock the TOC with CTRL+SHIFT+F11. If it is essential that the TOC itself be "dynamic" and updated based on real time formfield text changes then you can use the method illustrated below.

repeating data 5

Document TOC field is physically located following last REF field

repeating data 6

Visible TOC is displayed by the REF field

Process requires a bit of VBA

repeating data 7

Code to execute

repeating data 8

3. Bookmarks

Probably the easiest method is to simply select and bookmark the text you want repeated and use REF fields as described above.

repeating data 9

Site Note IconBonus Tip: Use of the field name REF is optional in cross references to bookmark names (i.e., you can use { REF bmCompanyName } or simply {bmCompanyName} as I have done in this example).

Site Note IconBonus Tip: If you change the bookmark value, simply press CTRL+a to select all fields and press F9 to update.

repeating data 10

4. OLE Link

Simply copy the text you want repeated and paste it in the repeated location use menu sequence Edit>Paste Special. Paste as Formatted or Unformatted text and select the radio button "Paste link." This automatically creates a bookmark at the source location and creates a Link field at the destination locations.

repeating data 11

repeating data 12

5. DocProperty

Nearly all of the methods described above apply a cross reference to bookmarked text. Each has its advantages and disadvantages.

A DocProperty is simple to use and much less prone to be accidentally altered or deleted. There are two types of DocProperties, built-in and custom. To view and apply DocProperties, click File>Properties. The Summary tab lists built in DocProperty names, the Custom tab list a dozen or so pre-named properties. Both tabs provide the user interface for storing document information as properties.

DocProperty demonstration

repeating data 13
repeating data 14

repeating data 15

Site Note IconNote: Use of the field name "DocProperty" is optional with built-in DocProperties. Field name required with custom document properties and property name must be enclosed in quotes.

repeating data 16

6. Automatic User Prompts

Many people ask "How can I set up my document or template so that I am prompted to enter information when I open the document or create a new document." The best answer to this question is to send you back to the Userform. It is the Cadillac interface between the human user and the Word form. Still there are alternatives. Each with its advantages and disadvantages. All are best employed using a template vice individual documents.

FILLIN field

Site Note IconBonus Tip: You can of course nest a FILLIN field in a Set field to create a bookmark and use REF fields as described in the bookmark method above or ASK method below (e.g., { SET Name{FILLIN "What is your name?"}{REF Name}).

repeating data 17

repeating data 18

ASK & REF fields

Site Note IconBonus Tip: The following single line of VBA code in a template AUTONEW or AUTOOPEN macro  can be used to auto fire the template ASK field: "ActiveDocument.Fields.Update

repeating data 19

repeating data 20

7. Content Controls

Content Controls (CCs) are a feature introduced with Word 2007.  While they have some room to grow, they are already incredibly versatile and will most likely meet or exceed your needs for repeating data in a document.

The real power of content controls lies in their ability to be bound (or mapped) to a custom XML data node contained in the new OfficeOpenXML file format. Through this binding:

Do you see the huge impact and advantage? This means that "any and all" of your repeated data fields can serve as a master data field. For example, if you are at the end of a long document and notice a misspelling in a client name you can change it then and there and all previous mapped CCs will update!! You don't have to plow back to the beginning of your document, reopen a form or property dialog, to update data.

Built-in Document Property Content Controls

Site Note IconNote:  These controls are actually mapped to the 15 like named built-in document properties and they can provide an effective way to manage those properties. If you insert one and enter a value and then go look at the document properties dialog it should come as no surprise to see the data reflected there. 

repeating data 21
Insert Document Property Content Control

repeating data 22
Assign a meaningful title using CC Properties dialog

repeating data 23
Define placeholder text as required.


Copy and past CC as required.

repeating data 25
Change one and they all change!!

Site Note IconRemember the method discussed above employs the content control designed for the built-in document property "abstract." While we have renamed it "Client Name," it still manages the document property "Abstract." If you should use a { DocProperty "Abstract" } field in the document it will display the value set in the content control. If you change the value of the content control the value of the document property is automatically updated. However, any DocProperty field will not display the changed value until the field is updated.

Simple Linked Content Controls

While not actually mapped, the following quick and simple method was suggested by Aaron Marin via user feedback on this page:

Advanced Custom Mapping

A full blown discussion of the VBA and "under the hood" workings of the XML data store are beyond the scope of this tips page.  A good understanding of both are required should you decide to roll up your sleeves and create your own detailed custom content control data store.  However, just for for the sake of completeness, the following VBA script will allow you to create multiple content controls mapped to a single data node:

VBA Script:
Sub AddContentControlAndMap()
Dim oCC As Word.ContentControl
Dim oCustomPart As Office.CustomXMLPart
'All new documents already have 3 reserved customXMLParts built-in. We create\use the 4th one.
'If it doesn't exist (and it wont' the first time this code is run _
 then we will throw an error and use that error to create it.
On Error GoTo Err_NoXMLPart
Set oCustomPart = ActiveDocument.CustomXMLParts(4)
Err_ReEntry:
'Create the CC at the selection.
Set oCC = ActiveDocument.ContentControls.Add(wdContentControlText)
With oCC
  'Give it at title
  .Title = "My Mapped CC"
  'Map the CC to the customXMLPart data node.
  .XMLMapping.SetMapping "/ccMap/ccData[1]"
End With
Exit Sub
Err_NoXMLPart:
'Define the customXMLPart and data node.
Set oCustomPart = ActiveDocument.CustomXMLParts.Add("<ccMap><ccData></ccData></ccMap>")
Resume Err_ReEntry
End Sub
    

Site Note iconSee: Installing Macros for instructions on how to set up and use the macros in this tips page.

By adding additional child nodes to the basic XML and judicious management of the mapping, you could dozens or hundreds of content controls linked to dozens or hundreds of unique data nodes.

For your convenience I have included content control mapping in a Word Template add-in co-developed with long time friend and Word MVP Graham Mayor: Mayor & Maxey "Content Control, Variable, Bookmark and Document Property Tools" Add-In.

8. StyleRef Fields

The StyleRef Field is particularly handy for repeating/displaying main body text defined by a specific style in a header or footer.  A basic example is repeating text defined using the "Title" style shown below:
repeating_data_28
Field code

repeating_data_29
Field result

repeating_data_30

The text returned by a StyleRef is defined by several factors 1) the style name 2) applied switches, and 3) field location in the document.  In the following example I have created a character style named WordDef and applied it to first word in each listed definition:

repeating_data_31
repeating_data_32

When the fields result is displayed the resulting text is evaluated according to the following rules:

repeating_data_34
repeating_data_35

Site Note iconNote: The style referenced must be applied to text in the main body of the document.  Otherwise the field will return "Error - No text of specified style found in document."

For a full list of StyleRef field switch and position behavior, see:  StyleRef Field

9. Document Variables

Lastly, the "Hidden Gems" in Word, Document Variables.  Created, edited and destroyed only with VBA, Document Variables provide a robust method for storing information.  This stored information remains part of the document and is ready for repeated using even if a document is closed and then reopened.  This information is easily retrieved and displayed in your document using the DocVariable field. The following template contains examples of the document variable and DocVariable fields used to create a simple form.  The template also provides examples of setting document properties using VBA: VBA Template.

Site Note IconNote:  For more on document variables, see my: Create and Employ a Userform.

That's it! I hope you have found this tips page useful and informative.

Share Stumbleupon

PAYMENTS/DONATIONS

Click to acces PayPal Verification Service Click to acces PayPal Verification Service

Do you want to make a payment for consulting work or donate to help support this site?

PayPal is a safe, easy way to pay online.

Use the appropriate currency "Donate" button to make a payment or donation.


Search my site or the web using Google Search Engine

Google Search Logo

Or

JustAnswerAsk a Word Expert OnlineSubmit