📚

【Excel VBA】XMLファイルを読み込む方法

2022/03/16に公開

C#でxmlファイルの読み込みはやったことがあるのですが、
Excel VBAを使ってxmlファイルを読み込む方法は
知らなかったので調べて試してみつつ記事にしました。
(.NET関連だからわりと簡単だろうと思いきや
あまり記事が見つからず少し大変でした)

今回はxmlファイルからタグを指定して、
そのテキストを取得しExcelのA列に書き出しする方法です。

参照設定

VBAでxmlを扱うときはまず
メニューバーの「ツール」の「参照設定」から
「Microsofr XML. v6.0」のチェックを入れておきます。

DOMDocumentのインスタンス化

xmlファイルを扱うためのDOMDocumentをインスタンス化しておきます。

Dim Doc As DOMDocument60
Set Doc = New MSXML2.DOMDocument60

取得したい要素を入れておく変数を用意する

xmlファイルから指定した要素のリストを取得するための
IXMLDOMNodeList変数を用意しておきます。

また、今回はFor Eachで要素を取り出すので、
For Each用の変数も用意しておきます。

Dim elements As IXMLDOMNodeList
Dim element As IXMLDOMNode

xmlファイルを読み込む

インスタンス化したDOMDocumentを使用して
xmlファイルをLoadします。

Doc.Load("Your xml File Path")

タグ指定で要素を取得する

getElementsByTagNameでタグを指定し
要素を取得します。
後はこれをFor Eachで取り出して
A列に書き出せば完了です。

Set elements = Doc.getElementsByTagName("Your xml NameTag")

最終コード

Dim Doc as DOMDocument60
Set Doc = New MSXML2.DOMDocument60

Dim elements as IXMLDOMNodeList
Dim element as IXMLDOMNode

Doc.Load("Your xml File Path")
Set elements = Doc.getElementsByTagName("Your xml NameTag")

Dim row as Integer
row = 1

For Each element In elements
    ActiveSheet.Cells(row, "A").Value = element.Text
    row = row + 1
Next element

要素さえ取り出してしまえば後は好き放題できますね!

Discussion