次の方法で共有


コンテンツ コントロールの削除時にデータ ストアからデータを削除する

ContentControl オブジェクトの Delete メソッドを呼び出すと、コンテンツ コントロールを削除できます。 たとえば、次のコードはタイトルが "MyTitle" のコンテンツ コントロールを削除します。

ActiveDocument.ContentControls.Item("MyTitle").Delete

削除する CustomDataXMLNode オブジェクトの Delete メソッドを呼び出して、単一のノードを削除することもできます。 削除する CustomXMLPart オブジェクトの Delete メソッドを呼び出すと、カスタム XML 部分全体を削除できます。

コンテンツ コントロールの詳細については、「コンテンツ コントロール を使用したオーキング」を参照してください。 これらのサンプルで使用されているオブジェクトは次のとおりです。

  • ContentControl

  • ContentControls

  • CustomXMLPart (Microsoft Office システム コア オブジェクト モデル)

  • CustomXMLParts (Microsoft Office システム コア オブジェクト モデル)

  • XMLMapping

サンプル 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 のサポートおよびフィードバックを参照してください。