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