Clase MappedDataField (Word VBA)

Un campo de datos asignado es un campo incluido en Microsoft Word que representa la información de direcciones y nombres de uso común, como "First Name".

Para usar una variable de clase MappedDataField, primero debe ser instanciado, por ejemplo

Dim mdf as MappedDataField
Set mdf = ActiveDocument.MailMerge.DataSource.MappedDataFields(Index:=1)

Las variables de tipo MappedDataField se pueden establecer utilizando el procedimiento MappedDataFields.Item

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos MappedDataField en una colección.

Dim mdf As MappedDataField
For Each mdf In ActiveDocument.MailMerge.DataSource.MappedDataFields
	
Next mdf

DataFieldIndex

Devuelve o establece un Long que representa el número de campo correspondiente en el origen de datos de combinación de correspondencia al que se asigna un campo de datos asignado.

Esta propiedad devuelve cero si el campo de datos especificado no está asignado a un campo de datos asignado.

Sub MapField() 
 With ActiveDocument.MailMerge.DataSource 
 .MappedDataFields(wdAddress1).DataFieldIndex = _ 
 .FieldNames("PostalAddress1").Index 
 End With 
End Sub

DataFieldName

Establece o devuelve una cadena que representa el nombre del campo en el origen de datos de combinación de correspondencia al que se asigna un campo de datos asignado.

Se devuelve una cadena en blanco si el campo de datos especificado no está asignado a un campo de datos asignado.

Sub MappedFields() 
 Dim intCount As Integer 
 Dim docCurrent As Document 
 Dim docNew As Document 
 
 On Error Resume Next 
 
 Set docCurrent = ActiveDocument 
 Set docNew = Documents.Add 
 
 'Add leader tab to new document 
 docNew.Paragraphs.TabStops.Add _ 
 Position:=InchesToPoints(3.5), _ 
 Leader:=wdTabLeaderDots 
 
 With docCurrent.MailMerge.DataSource 
 
 'Insert heading paragraph for tabbed columns 
 docNew.Content.InsertAfter "Word Mapped Data Field" _ 
 & vbTab & "Data Source Field" 
 
 Do 
 intCount = intCount + 1 
 
 'Insert Word mapped data field name and the 
 'corresponding data source field name 
 docNew.Content.InsertAfter .MappedDataFields( _ 
 Index:=intCount).Name & vbTab & _ 
 .MappedDataFields(Index:=intCount) _ 
 .DataFieldName 
 
 'Insert paragraph 
 docNew.Content.InsertParagraphAfter 
 Loop Until intCount = .MappedDataFields.Count 
 
 End With 
 
End Sub

Index

Devuelve un valor de tipo Long que representa la posición de un elemento en una colección.

Dim lngIndex As Long
lngIndex = ActiveDocument.MailMerge.DataSource.MappedDataFields(1).Index

Name

Devuelve el nombre del objeto especificado.

Dim strName As String
strName = ActiveDocument.MailMerge.DataSource.MappedDataFields(1).Name

Value

Devuelve el contenido del campo de datos de combinación de correspondencia o campo de datos asignado para el registro actual.

Utilice la propiedad ActiveRecord para establecer el registro activo de un origen de datos de combinación de correspondencia.

For Each dataF In _ 
 Documents("Main.doc").MailMerge.DataSource.DataFields 
 If dataF.Value <> "" Then dRecord = dRecord & _ 
 dataF.Value & vbCr 
Next dataF 
MsgBox dRecord