英語で読む

次の方法で共有


XMLMapping オブジェクト (Word)

ContentControl オブジェクトについてカスタム XML とコンテンツ コントロールとの XML マッピングを表します。 XML マッピングは、コンテンツ コントロール内の文字列と、このドキュメントのカスタム XML データ ストア内の XML 要素とのリンクです。

注釈

XPath 文字列を使用してコンテンツ コントロールの XML マッピングを追加または変更するには、 SetMapping メソッドを使用します。 次の使用例は、文書の作成者に関する組み込みの文書プロパティを設定し、作業中の文書に新しいコンテンツ コントロールを挿入した後、組み込みの文書プロパティへのコントロールの XML マッピングを設定します。

Dim objcc As ContentControl 
Dim objMap As XMLMapping 
Dim blnMap As Boolean 
 
ActiveDocument.BuiltInDocumentProperties("Author").Value = "David Jaffe" 
 
Set objcc = ActiveDocument.ContentControls.Add _ 
 (wdContentControlDate, ActiveDocument.Paragraphs(1).Range) 
 
Set objMap = objcc.XMLMapping 
blnMap = objMap.SetMapping(XPath:="/ns1:coreProperties[1]/ns0:createdate[1]") 
 
If blnMap = False Then 
 MsgBox "Unable to map the content control." 
End If

SetMappingByNode メソッドを使用して、CustomXMLNode オブジェクトを使用してコンテンツ コントロールの XML マッピングを追加または変更します。 次の例では、前の例と同じことを行いますが、 SetMappingByNode メソッドを使用します。

Dim objcc As ContentControl 
Dim objNode As CustomXMLNode 
Dim objMap As XMLMapping 
Dim blnMap As Boolean 
 
ActiveDocument.BuiltInDocumentProperties("Author").Value = "David Jaffe" 
 
Set objcc = ActiveDocument.ContentControls.Add _ 
 (wdContentControlDate, ActiveDocument.Paragraphs(1).Range) 
 
Set objNode = ActiveDocument.CustomXMLParts.SelectByNamespace _ 
 ("https://schemas.openxmlformats.org/package/2006/metadata/core-properties") _ 
 (1).DocumentElement.ChildNodes(1) 
 
Set objMap = objcc.XMLMapping 
blnMap = objMap.SetMappingByNode(objNode)

次の使用例新しい CustomXMLPart オブジェクトを作成、カスタム XML を読み込み、そこに 2 つの新しいコンテンツ コントロールを作成し、それぞれをカスタム XML 内の異なる XML 要素にマップします。

Dim objRange As Range 
Dim objCustomPart As CustomXMLPart 
Dim objCustomControl As ContentControl 
Dim objCustomNode As CustomXMLNode 
 
Set objCustomPart = ActiveDocument.CustomXMLParts.Add 
objCustomPart.LoadXML ("<books><book><author>Matt Hink</author>" & _ 
 "<title>Migration Paths of the Red Breasted Robin</title>" & _ 
 "<genre>non-fiction</genre><price>29.95</price>" & _ 
 "<pub_date>2/1/2007</pub_date><abstract>You see them in " & _ 
 "the spring outside your windows. You hear their lovely " & _ 
 "songs wafting in the warm spring air. Now follow the path " & _ 
 "of the red breasted robin as it migrates to warmer climes " & _ 
 "in the fall, and then back to your back yard in the spring." & _ 
 "</abstract></book></books>") 
 
ActiveDocument.Range.InsertParagraphBefore 
Set objRange = ActiveDocument.Paragraphs(1).Range 
Set objCustomNode = objCustomPart.SelectSingleNode _ 
 ("/books/book/title") 
Set objCustomControl = ActiveDocument.ContentControls _ 
 .Add(wdContentControlText, objRange) 
objCustomControl.XMLMapping.SetMappingByNode objCustomNode 
 
objRange.InsertParagraphAfter 
Set objRange = ActiveDocument.Paragraphs(2).Range 
Set objCustomNode = objCustomPart.SelectSingleNode _ 
 ("/books/book/abstract") 
Set objCustomControl = ActiveDocument.ContentControls _ 
 .Add(wdContentControlText, objRange) 
objCustomControl.XMLMapping.SetMappingByNode objCustomNode 
 
MsgBox objCustomControl.XMLMapping.IsMapped

コンテンツ コントロールの XML マッピングを削除するには、 Delete メソッドを使用します。 コンテンツ コントロールの XML マッピングを削除すると、コンテンツ コントロールと XML データとの接続だけが削除されます。 コンテンツ コントロールと XML データはどちらも文書内に残ります。 次の使用例は、作業中の文書で、現在マップされているすべてのコンテンツ コントロールの XML マッピングを削除します。

Dim objCC As ContentControl 
 
For Each objCC In ActiveDocument.ContentControls 
 If objCC.XMLMapping.IsMapped Then 
 objCC.XMLMapping.Delete 
 End If 
Next

コンテンツ コントロールが文書のデータ ストア内の XML ノードにマップされているかどうかを確認するには、 IsMapped プロパティを使用します。 次の使用例は、作業中の文書でマップされているすべてのコンテンツ コントロールの XML マッピングを削除します。

Dim objCC As ContentControl 
 
For Each objCC In ActiveDocument.ContentControls 
 If objCC.XMLMapping.IsMapped Then 
 objCC.XMLMapping.Delete 
 End If 
Next

コンテンツ コントロールをマップするのに XML ノードにアクセスするのにには、 CustomXMLNode プロパティを使用します。 コンテンツ コントロールをマップするのに XML 部分にアクセスするのにには、 CustomXMLPart プロパティを使用します。 CustomXMLNode オブジェクトと CustomXMLPart オブジェクトの操作に関する詳細については、それぞれのオブジェクトのトピックを参照してください。

関連項目

Word オブジェクト モデル リファレンス

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。