ここでは、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 の参照設定を追加する必要があります。