[ VBA ] xml ファイルを作成する ( MSXML2.DOMDocument60 )

Pocket

ここでは、VBA で xml ファイルを新規作成するサンプルスクリプトを掲載しています。なお、実行環境は Windows10 + Excel 2013 です。

スポンサーリンク

作成する xml ファイル

ここで紹介するサンプルスクリプトでは、以下の xml ファイルを新規に作成しています。

<?xml version="1.0" encoding="UTF-8"?>
<Root>
  <Customer id="1">
    <名前>ビッグジョン</名前>
    <住所>メキシコシティ</住所>
    <電話>0000-0000-0000</電話>
  </Customer>
</Root>

xml ファイルを作成する VBA サンプルスクリプト

xml ファイルを新規作成するVBAスクリプトです。詳細はサンプル内のコメントを参照ください。

    Dim xmlDoc      As MSXML2.DOMDocument60             'XMLドキュメント
    Dim xmlPI       As IXMLDOMProcessingInstruction     'XML宣言
    Dim node        As IXMLDOMNode                      '要素
    Dim rootNode    As IXMLDOMNode                      'root要素
    Dim custNode    As IXMLDOMNode                      'customer要素
    Dim attr        As MSXML2.IXMLDOMAttribute          '属性

    Set xmlDoc = New MSXML2.DOMDocument60               'XMLドキュメントを作成。

    'XML宣言(文字コードにはUTF-8を指定)
    Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"""))

    '要素<Root>を追加
    Set rootNode = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "Root", ""))

    '要素<Customer>を追加
    Set custNode = rootNode.appendChild(xmlDoc.createNode(NODE_ELEMENT, "Customer", ""))

    'Customer要素にid属性を追加
    Set attr = custNode.Attributes.setNamedItem(xmlDoc.createNode(NODE_ATTRIBUTE, "id", ""))
    attr.NodeValue = "1"
 
   '要素(名前)を追加
    Set node = custNode.appendChild(xmlDoc.createNode(NODE_ELEMENT, "名前", ""))
    node.Text = "ビッグジョン"

   '要素(住所)を追加
    Set node = custNode.appendChild(xmlDoc.createNode(NODE_ELEMENT, "住所", ""))
    node.Text = "メキシコシティ"

   '要素(電話)を追加
    Set node = custNode.appendChild(xmlDoc.createNode(NODE_ELEMENT, "電話", ""))
    node.Text = "0000-0000-0000"

    'XMLドキュメントの出力
    xmlDoc.Save ("sample.xml")
    

なお、MSXML2.DOMDocument60.Save メソッドでフルパスではなくファイル名のみを指定したときには、PC > ドキュメント フォルダに xml ファイルが作成されました。

また、出力されたファイルをテキストエディタで開けば確認できますが、作成されるXMLファイルには改行は付与されません。 XML 宣言後の改行のみが付与されます。

参照設定の追加

上記のスクリプトを実行するには、以下のように Microsoft XML, v6.0 の参照設定を追加する必要があります。

xml参照設定

xml参照設定

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *