Classe MappedDataField (Word VBA)

Les champs de données mappés sont des champs Microsoft Word qui représentent des informations habituelles concernant les noms et les adresses, (« Nom », par exemple).

Pour utiliser une variable de classe MappedDataField, elle doit d'abord être instanciée, par exemple

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

Les variables du type MappedDataField peuvent être définies à l'aide de la procédure MappedDataFields.Item

For Each

Voici un exemple de traitement des éléments MappedDataField dans une collection

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

DataFieldIndex

Cette propriété renvoie ou définit un type long qui représente le numéro de champ correspondant dans la source de données de fusion et publipostage auquel se mappe un champ de données mappé.

Cette propriété renvoie la valeur zéro si le champ de données spécifié n'est pas mappé à un champ de données mappé.

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

DataFieldName

Définit ou renvoie une chaîne qui représente le nom du champ dans la source de données de fusion et publipostage auquel se mappe un champ de données mappé.

Une chaîne vide est renvoyée si le champ de données spécifié n'est associé à aucun champ de données mappé.

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

Renvoie un type long qui représente la position d’un élément dans une collection.

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

Name

Retourne le nom de l'objet spécifié.

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

Value

Renvoie le contenu du champ de données de fusion et publipostage ou champ de données mappé pour l'enregistrement actif.

Utilisez la propriété ActiveRecord pour définir l'enregistrement actif dans une source de données de fusion et publipostage.

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