Klasse MappedDataField (Word VBA)
Zugeordnete Datenfelder sind Felder in Microsoft Word, die häufig verwendete Namen- oder Adressinformationen, wie z. B. "First Name" repräsentieren. Um eine MappedDataField -Klassenvariable zu verwenden, muss sie zuerst instanziert werden, beispielsweise
Dim mdf as MappedDataField
Set mdf = ActiveDocument.MailMerge.DataSource.MappedDataFields(Index:=1)
For Each
Hier ist ein Beispiel für die Verarbeitung der MappedDataField -Elemente in einer Sammlung
Dim mdf As MappedDataField
For Each mdf In ActiveDocument.MailMerge.DataSource.MappedDataFields
Next mdf
DataFieldIndex
Zurückgeben oder Festlegen einer Long , der die entsprechende Feld Nummer in der Seriendruck-Datenquelle darstellt, der einem zugeordneten Datenfeld zugeordnet ist.
Diese Eigenschaft gibt den Wert 0 (Null) zurück, wenn das angegebene Datenfeld keinem zugeordneten Datenfeld zugeordnet ist.
Sub MapField()
With ActiveDocument.MailMerge.DataSource
.MappedDataFields(wdAddress1).DataFieldIndex = _
.FieldNames("PostalAddress1").Index
End With
End Sub
DataFieldName
Legt fest oder gibt eine Zeichenfolge , die den Namen des Felds in der Seriendruck-Datenquelle darstellt, die einem zugeordneten Datenfeld zugeordnet ist.
Wenn das angegebene Datenfeld keinem zugeordneten Datenfeld zugeordnet ist, wird von dieser Eigenschaft eine leere Zeichenfolge zurückgegeben.
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
Gibt einen Wert vom Typ Long zurück, der die Position eines Elements in einer Auflistung darstellt.
Dim lngIndex As Long
lngIndex = ActiveDocument.MailMerge.DataSource.MappedDataFields(1).Index
Name
Gibt den Namen des angegebenen Objekts zurück.
Dim strName As String
strName = ActiveDocument.MailMerge.DataSource.MappedDataFields(1).Name
Value
Gibt den Inhalt des Felds Seriendruckdaten oder zugeordnete Daten für den aktuellen Datensatz zurück.
Mithilfe der ActiveRecord-Eigenschaft können Sie den aktiven Datensatz in einer Seriendruck-Datenquelle festlegen
For Each dataF In _
Documents("Main.doc").MailMerge.DataSource.DataFields
If dataF.Value <> "" Then dRecord = dRecord & _
dataF.Value & vbCr
Next dataF
MsgBox dRecord