删除内容控件时从数据存储区删除数据
可以通过调用 ContentControl 对象的 Delete 方法来删除内容控件。 例如,以下代码删除标题为"MyTitle"的内容控件。
ActiveDocument.ContentControls.Item("MyTitle").Delete
还可以通过调用要删除的 CustomDataXMLNode 对象的 Delete 方法来删除单个节点。 可以通过调用要删除的 CustomXMLPart 对象的 Delete 方法来删除整个自定义 XML 部件。
有关内容控件的详细信息,请参阅 使用内容控件进行组织。 以下示例中所用对象如下:
CustomXMLPart (Microsoft Office system core object model)
CustomXMLParts (Microsoft Office system core object model)
示例 1
第一个代码示例创建一个内容控件,并对该内容控件设置 XML 映射。
构建一个有效的自定义 XML 文件,保存在硬盘上,然后向要映射的信息所在的文档添加一个数据存储区。
假设内容控件将映射到以下示例自定义 XML 文件。
<?xml version="1.0" encoding="utf-8" ?>
<tree>
<fruit>
<fruitType>peach</fruitType>
<fruitType>pear</fruitType>
<fruitType>banana</fruitType>
</fruit>
</tree>
Now, suppose the content control is mapped to a <fruitType> node of the previous custom XML part.
Sub AddContentControlAndCustomXMLPart()
Dim strTitle As String
strTitle = "MyTitle"
Dim oContentControl As Word.ContentControl
Set oContentControl = ActiveDocument.ContentControls.Add(wdContentControlText)
oContentControl.Title = strTitle
ActiveDocument.CustomXMLParts.Add
ActiveDocument.CustomXMLParts(4).Load ("c:\mySampleCustomXMLFile.xml")
Dim strXPath As String
strXPath = "tree/fruit/fruitType"
oContentControl.XMLMapping.SetMapping strXPath
End Sub
示例 2
第二个代码示例在删除内容控件时删除整个 CustomXMLPart 对象。
Private Sub Document_ContentControlBeforeDelete( _
ByVal OldContentControl As ContentControl, _
ByVal InUndoRedo As Boolean)
Dim objPart As CustomXMLPart
'Always void changing the Word document surface during undo!
If InUndoRedo Then
Return
End If
'Also delete the part with a root element called 'tree'
If OldContentControl.Title = "MyTitle" Then
For Each objPart In ActiveDocument.CustomXMLParts
If objPart.DocumentElement.BaseName = "tree" Then
objPart.Delete
End If
Next part
End If
End Sub
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。