MailMergeDataFields Object (Word)

Office 2013 and later
GitHub-Mark-64px

Contribute to this content

Use GitHub to suggest and submit changes. See our guidelines for contributing to VBA documentation.

A collection of MailMergeDataField objects that represent the data fields in a mail merge data source.

Use the DataFields property to return the MailMergeDataFields collection. The following example displays the names of all the fields in the attached data source.

For Each afield In ActiveDocument.MailMerge.DataSource.DataFields 
 MsgBox afield.Name 
Next afield

You cannot add fields to the MailMergeDataFields collection. When a data field is added to a data source, the field is automatically included in the MailMergeDataFields collection. Use the EditDataSource method to edit the contents of a data source. The following example adds a data field named "Author" to a table in the attached data source.

If ActiveDocument.MailMerge.DataSource.Type = _ 
 wdMergeInfoFromWord Then 
 ActiveDocument.MailMerge.EditDataSource 
 With ActiveDocument.Tables(1) 
 .Columns.Add 
 .Cell(Row:=1, Column:=.Columns.Count).Range.Text = "Author" 
 End With 
End If

Use DataFields(Index), where Index is the data field name or the index number, to return a single MailMergeDataField object. The index number represents the position of the data field in the mail merge data source. The following example retrieves the first value from the FName field in the data source attached to the active document.

first = ActiveDocument.MailMerge _ 
 .DataSource.DataFields("FName").Value

The following example displays the name of first data field in the data source attached to the active document.

MsgBox ActiveDocument.MailMerge.DataSource.DataFields(1).Name
Show: