-->
Learn how Microsoft Word 2013 content controls enable a larger range of structured document scenarios.
This topic provides information about changes to content controls in Microsoft Word 2013 and the document scenarios that those changes enable.
Use Microsoft Word for the best word processing and document creation. Find out how document collaboration and editing tools can help polish your Word docs. Microsoft AutoUpdate may offer Office 2016 for Mac updates even though you have Office for Mac 2008 installed on your Mac. Upon accepting the update, Office for Mac 2008 gets automatically upgraded to Office 2016. This can occur if you are using version 3.14.0 of Microsoft AutoUpdate. STATUS: FIXED.
Structured documents are documents that control where content can appear on a document, what kind of content can appear in the document, and whether that content can be edited.
Here are some common scenarios for structured content in Microsoft Word:
A legal firm needs to create documents that contain legal language that should not be changed by the user.
A business needs to create a proposal cover page where only the title, author, and date are entered by the user.
A business needs to create invoices where the customer data is included in the invoice at predefined regions.
Content controls are Microsoft Word entities that act as containers for specific content in a document. Individual content controls can contain content such as dates, lists, or paragraphs of formatted text. Content controls help you to create rich, structured blocks of content and are designed for use in templates that insert well-defined blocks into your documents, creating structured documents.
Content controls are ideal for creating structured documents because content controls help you fix the position of content, specify the kind of content (for example, a date, a picture, or text), restrict or enable editing, and add semantic meaning to content.
The following content controls are available in Word 2010:
Rich Text
Plain Text
Picture
Building Block Gallery
Combo Box
Drop-Down List
Date
Checkbox
Group
Word 2010 content controls enable various potential structured document solutions, but in Word 2013 content controls enable a greater range of scenarios.
In Word 2013, content controls provide three key improvements: improved visualization, support for XML Mapping for Rich Text content controls, and a new content control for repeating content.
Word 2013 allows an individual content control to appear in one of three possible states:
Bounding box
Start/End tags
None
Note
If not stated otherwise, this section discusses the visualization of content controls when the document is not viewed in Design Mode.You set the display mode for a content control by using the Show as drop-down list control in the Content Control Properties dialog box.
Figure 1. Content Control Properties dialog box
You can also set the display mode for a content control by using the Word 2013 object model (discussed later in New Word 2013 content control object model members).
The default rendering for content controls in Word 2013 is to preserve the look of content controls as they appear in Word 2007 and Word 2010; that is, as a bounding box. When a content control is set to show as Bounding Box, the display changes depending upon the following user interaction:
When the content control does not have the focus, no visualization occurs
On mouse-over, the content control appears as a shaded rectangle
Figure 2. Content control on mouse-over
Figure 3. Content control with focus
When the content control is set to show as Start/End tag, the tags are displayed regardless of user interaction, and the title never appears; but buttons, such as the Drop-Down List button, appear on mouse over.
Figure 4. Content control set to show as start/end tags
When the content control is set to show as None, the content control is not displayed.
In addition to enabling a different kind of display for a content control, Word 2013 also helps you to set the color for an individual content control. You set the color of a content control by using the Color button in the Content Control Properties dialog box.
You can also set the color of a content control by using the Word 2013 object model (discussed later in New Word 2013 content control object model members).
Figure 5. Content Control Properties dialog box
Word 2013 helps you to map the content of rich text content controls and document building block content controls to the XML data store. To do this, you set the XML mapping for the content control. You can set this property by using the existing XMLMapping.SetMapping method in the object model. Within the custom XML part, the custom XML is stored as flat Open XML markup converted into a string (by using standard XML encoding), so that it can be stored as a text node in the custom XML part. However, the mapping continues to have the limitation that it can only successfully map to leaf nodes or attributes.
Note
Rich text content controls cannot contain other rich text content controls. If one exists inside of another (for example, because of file format manipulation, copy and paste, and so on), it is unlinked until it is no longer contained inside a mapped rich text control.
For more information about how to set up XML mapping, see the section New Word 2013 content control object model members later in this topic.
In addition to visualization enhancements and support for XML mapping to rich text content controls, Word 2013 also adds a new content control that enables you to repeat content. The repeating section content control repeats the content contained within it, including other content controls.
You insert the repeating section content control around entire paragraphs or table rows. Once the control surrounds a section, you can insert copies of the section above or below the contained section.
Figure 6. Repeating section content control context menu
You can repeat the inserted section by using either the control on the end of the content control (displayed as a button with a plus sign ()) or by choosing a command on the context menu, as shown in Figure 6. The repeated content becomes a separate section of the control that you can assign a title by using the Content Control Properties dialog box.
Figure 7. Assign a section title in the Content Control Properties dialog box
Once you have given the section a title, if you select Allow users to add and remove sections in the Content Control Properties dialog box, users can add or delete the section by name.
Figure 8. Use the repeating section content control context menu to delete a section
When a repeating section content control surrounds other content controls, the enclosed content controls are repeated in each new item; but any such content controls have their contents reset to placeholder text. There are two exceptions where child control contents are preserved:
When a child control is a repeating section control.
When a child control is XML-mapped to a node outside the repeating section content control.
Figure 9. Repeating section content control containing child controls before repeat
Figure 10. Repeating section content control containing child controls after repeat
For XML mappings that are contained in a repeating section, Word 2013 maps them as follows.
If the mapping does not intersect with an item in the node set as part of its parent chain, the binding is an 'absolute binding' and shows the same content in all repeating section items.
If the mapping does intersect with an item in the node set as part of its parent chain, the binding is a 'relative binding', and is remapped as follows:
The absolute binding for the node is determined (flattening out any query expressions)─this should happen on initial mapping
The axis of the binding that intersects with the node set is removed
The remainder of the XPath is evaluated relative to the XPath of the repeating section content item
For example, the following mappings might occur:
The repeating section is mapped to rootnextpath
The control in the sample item is mapped to rootnextpath[2]baz
Word matches rootnextpath[2] to an item in the node set
The binding is therefore evaluated as .baz, where the base is the node of the repeating content item.
The following suggestions for working with repeating content controls can help you prevent data loss and avoid frustration.
If you insert a repeating section content control that is mapped to XML data, every time your user reopens the document, Word recreates the repeating section items, based on the information in the data store. Even if you save the document, any changes that the user makes in the repeating section items in the document that aren't also mapped into the data store are lost.
To help prevent this from happening, lock the repeating section content control and allow the user to edit only in unlocked child content controls that are mapped to the XML as well.
If you want to bind a repeating section content control to a table, insert the table and then the insert repeating section content control, and not the other way around. (Otherwise, you won't be able to select only the table).
Nesting repeating section content controls tightly within a table (for example, when the end of the parent and child repeating section content control is in the same cell) causes the outer repeating section to be deleted when the inner section has an item added or removed.
You can prevent this from happening by adding a paragraph marker between the end of one repeating section content control and the next. To hide the paragraph marker, deselect the Show/Hide option on the Home tab of the ribbon.
The following elements were added to the WordprocessingML Open XML File Format schema.
Table 1. New elements in the WordprocessingML Open XML File Format schema for content controls
Element | Description | ||
---|---|---|---|
<w:appearance> | <w:appearance> is a child element of <w:sdtPr>. The following values are valid for the val attribute: <w:appearance val= boundingBox | tags | hidden. The default value is boundingBox. |
<w:color> | <w:color> is a child element of <w:sdtPr>. The content model matches the existing CT_Color complex type. The default value is the color used in Word 2010. |
With the new enhancements and additions to content controls in Word 2013, the object model for Word has been updated to allow for programmatic manipulation of the new feature set. In addition, changes have also been made to the underlying Open XML File Format for word processing documents.
The following sections provide more information about the specific object model changes related to each content control enhancement.
Several object model additions are included in Word 2013 for content control visualization enhancements. The following table list new members of the ContentControl object for visualization.
Table 2. New ContentControl object members
Member | Description |
---|---|
. Appearance as WdContentControlAppearance | Gets or sets the visualization of the content control. |
. Color as WdColor | Gets or sets the color of the content control. |
The following table lists constants in the new WdContentControlAppearance enumeration.
Table 3. New WdContentControlAppearance enumeration constants
Constant | Description |
---|---|
wdContentControlBoundingBox | Represents a content control shown as a shaded rectangle/bounding box (with optional title). |
wdContentControlTags | Represents a content control shown as start/end markers. |
wdContentControlHidden | Represents a content control that is not shown. |
The following code sample shows how to create rich text content controls and set visualization programmatically.
No additions were made to the Word 2013 object model to accommodate rich text mapping to XML nodes in the document data store. Instead, use the existing object model to map a rich text content control to an XML node in the document data store. Additionally, no changes were made to the underlying Open XML File Format WordprocessingML schema as part of the newly included rich text content control support specifically for XML mapping.
The following code sample shows how to map a rich text content control to an XML node programmatically.
The repeating section content control is available in the object model by using the following additions to the ContentControl object and the new RepeatingSectionItem and RepeatingSectionItemColl objects. Table 4 lists the most important new members of the ContentControl object for repeating section content controls.
Table 4. ContentControl object members
Member | Description |
---|---|
AllowInsertDeleteSection as Boolean | Gets or sets whether users can add or remove sections from the content control by using the UI. If this property is called for a content control that is not of type repeating section, the call fails with the following error message: 'This property can only be used with repeating section content controls.' |
RepeatingSectionItemTitle as String | Gets or sets the name of repeating section items used in the context menu. If this property is called for a content control that is not of type repeating section, the call fails with: 'This property can only be used with repeating section content controls.' |
InsertRepeatingSectionItemBefore as ContentControl | Adds a repeating section item before the current item and returns the new repeating section item. If this method is called for a content control that is not of type repeating section item, the call fails with: 'This property can only be used with repeating section item content controls.' |
InsertRepeatingSectionItemAfter as ContentControl | Adds a repeating section item after the current item and returns the new repeating section item. If this method is called for a content control that is not of type repeating section item, the call fails with: 'This property can only be used with repeating section item content controls.' |
Table 5 lists the most important members of the RepeatingSectionItem object.
Table 5. RepeatingSectionItem object members
Member | Description |
---|---|
Range as Range | Returns the range of the specified repeating section item, excluding the start and end tags. |
Delete | Deletes the specified repeating section item. |
InsertItemAfter as RepeatingSectionItem | Adds a repeating section item after the specified item and returns the new item. |
InsertItemBefore as RepeatingSectionItem | Adds a repeating section item before the specified item and returns the new item. |
Table 6 lists the most important members of the RepeatingSectionItemColl object.
Table 6. RepeatingSectionItemColl object members
Member | Description |
---|---|
Item as RepeatingSectionItem | Returns an individual repeating section item. |
Table 7 shows the new member of the WdContentControlType enumeration for repeating section content controls.
Table 7. WdContentControlType enumeration addition
Constant | Description |
---|---|
wdContentControlRepeatingSection | Represents a content control that contains a single item in a repeating section. |
The following code sample shows how to use repeating section content controls programmatically.
The file format representation of a repeating section content control generally uses the same element names, values, and so on as the existing XML markup; however, the <sdt> element representing the outer repeating section container exists in the Word 2013 namespace, to ensure compatibility with earlier versions of Word.
The individual repeating items within the repeating section content control (that surround each individual item) are saved as rich text content controls using the existing WordprocessingML representation. Table 8 lists new elements in the WordprocessingML schema for repeating section content controls.
Table 8. New elements in the WordprocessingML schema for repeating section content controls
Element | Description |
---|---|
<w15:repeatingSection> | Specifies a repeating section content control. This element is mutually exclusive with all other control types and has no child elements or attributes. |
<w15:repeatingSectionItem> | Specifies a repeating section item content control. This element is mutually exclusive with all other control types, and has no child elements or attributes. |
<w15:doNotAllowInsertDeleteSection> | Specifies that the user cannot add or delete sections by using the user interface in Word 2013. |
<w15:sectionTitle> | Specifies the name of repeating section items (and is used in the context menu when the control is chosen). |
Content controls are bounded and potentially labeled regions in a document that serve as containers for specific types of content. Individual content controls can contain content such as dates, lists, or paragraphs of formatted text. In some cases, content controls might remind you of forms. However, they are much more powerful, flexible, and useful because they enable you to create rich, structured blocks of content. Content controls enable you to author templates that insert well-defined blocks into your documents. Content controls enable you to:
Specify structured regions in a template. Each structured region has its own unique ID so that you can read from and write to it. Examples of types of structured regions (or content controls) are combo boxes, pictures, text blocks, and calendars.
Determine the behavior of content controls. Each content control takes up a portion of a document and, as the template author, you can specify what each region does. For example, if you want a region of your template to be a calendar, you insert a calendar content control in that area of the document, which automatically determines what that block of content does. Similarly, if you want a section of a template to display an image, create a picture content control in that area. In this way, you can build a template with predefined block types.
Restrict the ability to modify content controls within a document. Each content control can be restricted, so that it cannot be deleted or edited. This is useful if, for example, you have copyright information in a template that the user should be able to read but not edit. Or, as another example, you can also lock a content control that you have placed within a template document so that a user does not accidentally delete the content contained in the content control. This makes templates more robust than in previous versions.
Map the contents of a content control to data in a custom XML part. For example, if you insert plain text content controls into cells of a table of stock prices, you can map the content controls in the table cells to nodes in an XML file that contain the current stock prices. When the prices change, an add-in can programmatically update the attached XML file, which is bound to each plain text content control, and the new, updated prices automatically appear in the table.
The easiest way to create a content control is through the user interface (although you can also create them programmatically). To create a content control through the user interface (UI), select the content that you want to turn into a content control (for example, some text or a picture) and then choose the content control type you want from the content controls section of the Developer ribbon. This creates a content control around the selected content.
The following table shows the objects in the Word object model that relate to content controls.
Name | Description |
---|---|
ContentControl | Each ContentControl object represents an individual content control within a document. Use the ContentControls collection to access individual ContentControl objects. |
ContentControls | You can use the ContentControls properties of the Document, Range, and Selection objects to access the collection of content controls. You can also use the SelectContentControlsByTitle method and the SelectContentControlsByTag method of the Document object to access a ContentControls collection that includes specific content controls that all have the same title or tag value. |
ContentControlListEntry | When a content control is a drop-down list or combo box, the ContentControlListEntry object represents individual items within the list. |
ContentControlListEntries | Use the DropdownListEntries property of the ContentControl object to access all the items in an individual drop-down list or combo box. |
Each of these objects or collections has methods and properties that allow you to work with the content controls both individually and as a collection. Because there are various types of content controls (see the following section 'Types of Content Controls'), the ContentControl object has members that might not apply to all the different types of content controls. The following table shows those properties and methods of the ContentControl object that only apply to certain types of content controls.
Note
For a complete list of all properties and methods of the ContentControl object, see Content Controls.
Property/Method | Applies To |
---|---|
BuildingBlockCategory property | BuildingBlock Gallery content controls (wdContentControlBuildingBlockGallery) |
BuildingBlockType property | BuildingBlock Gallery content controls (wdContentControlBuildingBlockGallery) |
DateDisplayFormat property | Date content controls (wdContentControlDate) |
DateDisplayLocale property | Date content controls (wdContentControlDate) |
DateStorageFormat property | Date content controls (wdContentControlDate) |
DropdownListEntries property | Combo box and drop-down list content controls (wdContentControlComboBox and wdContentControlDropdownList) |
MultiLine property | Plain-text content controls (wdContentControlText) |
Ungroup method | Group content controls (wdContentControlGroup) |
SetCheckedSymbol method | Check Box content control (wdContentControlCheckBox) |
SetUncheckedSymbol method | Check Box content control (wdContentControlCheckBox) |
There are eight different types of content controls that you can add to a document, each of which is represented in a new enumeration called WdContentControlType.
Content Control Type | Description | WdContentControlType Constant |
---|---|---|
A checkbox. | wdContentControlCheckBox | |
Calendar | A date-time picker. | wdContentControlDate |
Building Block | Enables the user to choose from specified building blocks. | wdContentControlBuildingBlockGallery |
Drop-Down List | A drop-down list. | wdContentControlDropDownList |
Group | Defines a protected region of a document that users cannot edit or delete. A group control can contain any document items, such as text, tables, graphics, and other content controls. | wdContentControlGroup |
Combo Box | A combo box. | wdContentControlComboBox |
Picture | A picture. | wdContentControlBlockPicture |
Rich Text | A block of rich text. | wdContentControlRichText |
Plain Text | A block of plain text. | wdContentControlText |
In addition to the properties and methods available with the content control object model in Word, you can also use several events that allow you to run code when adding or removing a content control or when a user edits a content control. The following list describes each of the events and when the event code runs. All of these events are members of the Document object.
Event Name | Description |
---|---|
ContentControlAfterAdd | Occurs after adding a new content control to a document. This event runs whether the user adds the content control by using the tools in the UI or adds them by using code. |
ContentControlBeforeContentUpdate | Occurs before Word updates the content in a content control. |
ContentControlBeforeDelete | Occurs before a user deletes a content control. This event runs whether the user deletes the content control by using the tools in the UI or deletes them by using code. |
ContentControlBeforeStoreUpdate | Occurs before Word updates the contents of a content control from data in the document's data store. |
ContentControlOnEnter | Occurs when a user enters a content control. |
ContentControlOnExit | Occurs when a user exits a content control. |
Whether you want to add a content control, delete a content control, or access and manipulate existing content controls, you can do it with code. The following sections are just a few samples of what you can do.
As mentioned previously, there are eight different types of content controls that you can add to your documents. Use the Add method of the ContentControls collection to add a content control to a document. The following example adds a date picker to the active document and sets the date value to the current date.
You can use the same basic construction to add any of the different types of content controls to a document.
Use the Title property to add a title to a content control. This is text that users see, and it can help them to know what type of data to enter into the content control. The following example adds a new plain-text content control to the active document and sets the title, or display text, for the control.
Placeholder text is temporary text. It can be a simple one-word or two-word description (similar to the title) or it can be a more thorough description (such as numbered steps). Modifying the placeholder text is the same regardless of the type of content control or the expected contents of the content control. The following example adds a drop-down list to the active document, sets the placeholder text for the control, and then fills the list with the names of several animals.
These are just a few of the ways that you can use the object model to manipulate content controls in your documents. For more examples, see the How To section.
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.