Binden von Steuerelementen an eine bestimmte Zeile im Datenspeicher beim Einfügen eines Bausteins
Ein Dokumentbaustein ist ein vordefinierter Inhalt, z. B. ein Deckblatt, eine Kopfzeile, eine Fußzeile oder eine benutzerdefinierte Klausel in einem Vertrag. Benutzerdefinierte Bausteine erleichtern Es Ihnen, schnell professionell aussehende Word-Dokumente zu erstellen.
Verwenden Sie Inhaltssteuerelemente in benutzerdefinierten Bausteinen, die XML zugeordnet wurden, die Daten enthält. Der Inhalt dieser Inhaltssteuerelemente wird dann automatisch mit der entsprechenden benutzerdefinierten XML-Komponente (falls vorhanden) verknüpft, wenn die Komponente eingefügt wird. Alternativ können Sie, wie im folgenden Beispiel dargestellt, die benutzerdefinierte XML-Komponente und die XML-Zuordnungen auch dynamisch hinzufügen, wenn die Komponente eingefügt wird. Um beispielsweise ein Deckblatt zu erstellen, können Sie ein Bildinhaltssteuerelement platzieren, das ein Bild anzeigt, das aus einem Element abgerufen wurde, in einem angefügten CustomXMLPart-Objekt . Ebenso können Sie den Projektnamen mithilfe eines Text-Inhaltssteuerelements erstellen, das Sie einem Element in einem CustomXMLPart-Objekt zuordnen, das den Projektnamen enthält.
Dies erleichtert das Aktualisieren Ihrer Daten. Um eines dieser Elemente zu aktualisieren, können Sie einige Codezeilen schreiben, um jedes Dokument zu aktualisieren, das auf dem Server gespeichert ist, der diesen Deckblatt-Baustein verwendet. Beispielsweise können Sie ein altes Logo durch ein neues ersetzen. Wenn sich der Projekttitel ändert, können Sie auch den Text im XML-Element aktualisieren, den Sie dem Textinhaltssteuerelement zugeordnet haben, das den Projektnamen enthält, und dadurch automatisch alle auf dem Server gespeicherten Dokumente aktualisieren.
In diesen Beispielen werden die folgenden Objekte verwendet:
CustomXMLPart (Microsoft Office-Kernobjektmodell)
CustomXMLParts (Microsoft Office-Kernobjektmodell)
Beispiel
Angenommen, der Benutzer hat Ihren benutzerdefinierten Dokumentbaustein in ein Dokument eingefügt, und ausgehend von dieser Aktion möchten Sie die benutzerdefinierte XML-Komponente einfügen und eine entsprechende Zuordnung erstellen.
<?xml version="1.0" encoding="utf-8" ?>
<projects>
<project>
<title>Data-Driven Document Generation</title>
<manager>Frank Martinez</manager>
<customer>Northwind Traders</customer>
</project>
</projects>
Im folgenden Beispielcode wird die vorherige XML-Datei geladen und jedes Inhaltssteuerelement dem entsprechenden XML-Knoten in dieser neuen benutzerdefinierten XML-Komponente zugeordnet, wenn der Dokumentbaustein mit dem Namen "Company Report" hinzugefügt wird.
Private Sub Document_BuildingBlockInsert(ByVal Range As Range, _
ByVal Name As String, ByVal Category As String, _
ByVal Type As String, ByVal Template As String)
Dim cc As ContentControl
Dim part As CustomXMLPart
If Name = "Company Report" Then
'add the custom XML
ActiveDocument.CustomXMLParts.Add
Set part = ActiveDocument.CustomXMLParts(ActiveDocument.CustomXMLParts.Count).Load("c:\myProjects.xml")
'map the controls
For Each cc In Range.ContentControls
cc.XMLMapping.SetMapping cc.XMLMapping.XPath, cc.XMLMapping.PrefixMappings, part
Next cc
End If
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.