插入建置組塊時,將控制項系結至資料存放區中的特定資料列
文件建置組塊是預先設計的內容片段,如合約的封面、頁首、頁尾或自訂條款。 自訂建置組塊可讓您更輕鬆地快速建立專業型式的 Word 檔。
在已對應至包含資料之 XML 的自訂建置組塊內使用內容控制項。 在插入適當的自訂 XML 組件 (如果有的話) 時,內容控制項的內容就會自動連結到該組件。 或者,如下列範例所示,您可以動態新增自訂的 XML 組件,而且在插入該組件時新增 XML 對應。 例如,若要建構封面,您可以放置圖片內容控制項,以顯示從附加 CustomXMLPart 物件中的元素擷取的影像。 同樣地,您可以使用文字內容控制項建立專案名稱,而將此控制項對應到 CustomXMLPart 物件內包含此專案名稱的元素。
這會讓您更輕鬆地更新資料。 若要更新這些項目的其中一個,可以撰寫幾行程式碼,以更新伺服器上所儲存且使用此封面建置組塊的每一個文件。 例如,您可以用新的商標來取代舊的商標。 如果專案標題變更,您可以在對應至包含此專案名稱之文字內容控制項的 XML 元素內更新該文字,藉此自動更新伺服器上所儲存的所有文件。
在這些範例中所使用的物件包括:
CustomXMLPart (Microsoft Office 核心物件模型)
CustomXMLParts (Microsoft Office 核心物件模型)
範例
假設使用者已經將自訂文件建置組塊插入文件中,而且根據該動作,您要插入及對應到自訂 XML 組件。
<?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>
下列範例程式碼會載入先前的 XML 檔案,而且在新增名為 "Company Report" 的文件建置組塊時,將每個內容控制項對應至該新的自訂 XML 組件中的適當 XML 節點。
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
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。