コンテンツ コントロールの削除時にデータ ストアからデータを削除する
ContentControl オブジェクトの Delete メソッドを呼び出すと、コンテンツ コントロールを削除できます。 たとえば、次のコードはタイトルが "MyTitle" のコンテンツ コントロールを削除します。
ActiveDocument.ContentControls.Item("MyTitle").Delete
削除する CustomDataXMLNode オブジェクトの Delete メソッドを呼び出して、単一のノードを削除することもできます。 削除する CustomXMLPart オブジェクトの Delete メソッドを呼び出すと、カスタム XML 部分全体を削除できます。
コンテンツ コントロールの詳細については、「コンテンツ コントロール を使用したオーキング」を参照してください。 これらのサンプルで使用されているオブジェクトは次のとおりです。
CustomXMLPart (Microsoft Office システム コア オブジェクト モデル)
CustomXMLParts (Microsoft Office システム コア オブジェクト モデル)
サンプル 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
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 のサポートおよびフィードバックを参照してください。