📚
【Excel VBA】XMLファイルを読み込む方法
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