共用方式為


插入建置組塊時,將控制項系結至資料存放區中的特定資料列

文件建置組塊是預先設計的內容片段,如合約的封面、頁首、頁尾或自訂條款。 自訂建置組塊可讓您更輕鬆地快速建立專業型式的 Word 檔。

在已對應至包含資料之 XML 的自訂建置組塊內使用內容控制項。 在插入適當的自訂 XML 組件 (如果有的話) 時,內容控制項的內容就會自動連結到該組件。 或者,如下列範例所示,您可以動態新增自訂的 XML 組件,而且在插入該組件時新增 XML 對應。 例如,若要建構封面,您可以放置圖片內容控制項,以顯示從附加 CustomXMLPart 物件中的元素擷取的影像。 同樣地,您可以使用文字內容控制項建立專案名稱,而將此控制項對應到 CustomXMLPart 物件內包含此專案名稱的元素。

這會讓您更輕鬆地更新資料。 若要更新這些項目的其中一個,可以撰寫幾行程式碼,以更新伺服器上所儲存且使用此封面建置組塊的每一個文件。 例如,您可以用新的商標來取代舊的商標。 如果專案標題變更,您可以在對應至包含此專案名稱之文字內容控制項的 XML 元素內更新該文字,藉此自動更新伺服器上所儲存的所有文件。

在這些範例中所使用的物件包括:

範例

假設使用者已經將自訂文件建置組塊插入文件中,而且根據該動作,您要插入及對應到自訂 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 支援與意見反應