【Excel/VBA】既存のXMLファイル要素の取得・編集・保存方法

Excel/VBA

JSONに取って代わりつつあるものの、未だ根強く残り続けるXMLファイル。本日はVBAでXMLファイルを開き、中身を書き換えて名前を付けて保存を行うマクロを作ったので備忘録。

スポンサーリンク

MSXMLを利用する


まず今回XMLを操作するにあたって、Microsoft XML v6.0の参照設定を追加を行う。

で、これでMSXML2.DOMDocumentが使えるようになる…ってのはWin7迄のお話で、Win8.1以降はMSXML2.DOMDocument60とバージョン指定をして宣言しないとエラーになる模様。(無駄に嵌った…)
※Microsoft XML v3.0ならセーフらしい

読み込むXMLデータ


今回のマクロ作成の経緯としては、IP電話機Grandstream(GXP16系)のプロビジョニングファイルをエクセルから一括で作りたかったのです。(最近は画面チラ見しただけでファームのバージョンが分かる位Grandstreamいじってる…)


実際にいじる元のXMLファイルの中身はこんな感じ↓

このP値それぞれにSIPやらSRVやらプレフィックス設定が入ってるので、シート側に書き換えたい値を持たせてそれらを元にごにょごにょして行きます。

シート側のイメージはこんな感じ↓

プロビジョニング設定しとくと、いちいち1台1台ブラウザでアクセスして設定しなくても、 rebootさせれば勝手にファイルを読み込んで設定が書き変わってくれるので超絶便利なので、Grandstream愛好家は是非使うべし。

プロビジョニング用XML作成マクロ


下記コピペでOK

シートに配置したボタンによりキック。やってる事は非常に単純。
Loadで開き、P値で直接エレメント指定SelectNodesで取得&書き換え、Saveで保存するだけ!

是非参考にしてみてください~(ᵔᴥᵔ)

コメント