2012年4月1日日曜日

[EXCEL][マクロ]マッピングによる転記(準備)

マッピングによって特定のファイルにあるデータの並び順や位置を入れ替えて別のファイルに出力したいということがよくある。

例えば、データベースのテーブル定義書があり、カラム名や型が1行1カラムで記述されているEXCELファイルがあったとする。
このファイルに記述されている各カラムの詳細なデータ説明を、書式が整えられた別のEXCELに転記したいといった場合、VBAが活躍する。

書式が整えられたテンプレートに、データを設定するマクロを組む。
準備として、このマクロを実行する条件を次のように前提する。

(1) 転記元のデータファイルは、1行1データ形式できれいな表形式として用意する。
(2) 転記元のデータファイルの複数のシートからデータを取得できるようにする。
(3) 転記する書式のテンプレートファイルを別EXCELで用意し、「原紙」というシート名にする。
(4) 転記元と転記先のマッピングファイルを別EXCELで作成する。
(5) マクロはテンプレートファイルの「原紙」シートをコピーし、そこにデータの転記を行う。
(6) 転記元の表にある全てのデータを処理したら、作成した処理結果データをセーブする。
(7) マッピングファイルに最初に記述した転記元データのシートにある全データをループ回数制御の基準とする。

転記元データファイル(表形式ファイル)のデータ有無は2列目で判断する。
これは1列目に項番などの一般項目を置いて、データがなくても連番だけは先に振るケースがあるためである。
2列目に記述がある行を有効行と判断する。

マッピングファイルは、次の通り前提する。

(1) マッピングファイルには必ず「MAPPING」という名前のシートを用意する。
(2) このシートの1行目A列からからNo.、転記元のシート、転記元のカラム、転記先と4つのセルを入力し、タイトル行とする。
(3) 2行目以降にデータを記述する。転記元データファイルと同じく、2列目が空白でない行を有効行と判定する。

マクロファイルは、次の通り前提する。

(1) マクロ実行ボタンを押下したら、そのハンドラ関数で転記処理を行う。
(2) 転記元、テンプレート、マッピング、処理結果出力ファイルのパス名とファイル名を可変データで取得する。

0 件のコメント:

コメントを投稿