転記元シートAから転記先シートBへ該当項目を転記する手法の考察

(記載中)

1 目的

 マクロで行う作業の典型的なものとして、シートAに大きな表(転記元となるデータベース)があって、シートBの帳票(請求書などの様式)にループ処理しながら項目を転記する作業がある。この転記項目が多いケース、転記元の列が今後改定されるかもしれないケース、帳票の様式が今後改定されるかもしれないケースを想定している。転記項目の多さ、位置の分かりにくさ、列位置や様式の変更の頻度、可能性の大小によって適切な方法は異なってくる。現状把握している転記方法を整理しておく。

 

2 方法として、①転記元の列番号を直接コードに書く、②Enumで転記元の列番号を管理する、③転記元の列番号(転記先のセルアドレスも)の対応関係をシートに整理して、VBAコードから出してしまい、そのシートをVBAコードが参照する、の3つの方法がある。

 大前提として、最優先すべきは①。いろいろやって、結局基本に戻ってくる。KISSの法則。転記するコードを固めて並べておけば、後任者も推測しやすく、何のことか分からないということにはなるまい。ただ、転記項目が多いときに転記元や転記先の位置が変わると、手間がかかり、うんざり、混乱、間違う。そこで、項目数が多くなってきたときに、どうするかという話。

3 転記項目の規則性によるが、5個から10個くらいであれば、やはり転記コードを1つ書いてから、コピペして増やして、コードのセルアドレスを訂正していくのが速い。

4 転記項目が5個を超えてくると、Enumを使いたくなってくる。

5 転記項目が10個を超えてくると、Enumもしんどい。そこで、転記対応表シートを作ってみる。

参考サイト

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

Tipsブログ: [EXCEL][マクロ]マッピングによる転記(ソースコード)