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)
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