Excelシートの2元データをXML形式に保存するマクロを作った
Excelシートの2元表をXML形式のファイルに保存するマクロを作りました。Excel自体にもXML形式に保存する機能はあるのですが、あくまでExcelシートの状態を維持するためのファイルですし、要素名など自分で選べないということもあって自作しました。
目的はWebアプリなどで使うXMLファイルを生成するためのものです。
[ad#top-1]
ダウンロード
GitHubにアップしています。ダウンロードはこちら↓
ModuleやFormをエクスポートしているのでいろいろファイルがありますが、実際に使うのは「toXML.xlsm」のみです。
使い方
まず、XMLファイルにするデータを用意する必要があります。同じファイル内のシートに作成してください。シート名は任意でOKです。(あとでシート名を指定します)
今回の例では郵便番号と住所との対比表を用いました。日本郵便のWebサイトからダウンロードして余計なものを除外したりしたものです。全国だと124053データもあって処理に時間がかかるので、とりあえず北海道のみにしました。8252データです。もちろん全国データでも可能ですが、かなり時間がかかります。
Sheet2が実行シートになっています。各パラメータを設定して[実行]ボタンを押せばXMLファイル形式に保存してくれます。
「シート名」はデータシートのシート名を指します。「フィールド行番号」は項目行の行番号、「データ開始行」はデータが何行目から開始されるかを示しています。
「親要素名」「子要素名」を入力して、書き出すXMLファイル名を「ファイル名」に、あとは「ファイル形式」と「改行コード」を選択式で選んでください。ファイル形式はShift-JISかUTF-8の2種類となります。
各データの要素名はデータシート状の項目名がそのまま使われます。
[実行]ボタンを押すと処理が開始します。時間がかかるので処理中なのか固まってしまっているのかよくわからないので、カウンターをつけました。これでどこまで進んでいるか進捗が一目でわかります。
完了すると同じフォルダ内にXMLファイルが生成されます。8252行分で1MB超えました。
地味だけど意外と便利かと思います。
[ad#ad-1]
スポンサーリンク