毎月こんな修正をしていませんか?
A列だったものがB列になった
転記先のセルが変更になった
シート名が変わった
そのたびにVBAを修正する。
生成AIを使ってコードを書いたとしても、結局はコードの修正が必要になります。
そこで私が考えたのが、
「コードを変更するのではなく、設定を変更する」
という方法です。
今回紹介する転記マッピングシートパターンでは、
- 転記元
- 転記先
- シート名
をシート上に設定するだけで、転記内容を変更できます。
しかも実際に実行するコードは驚くほど短くなります。
今回はその仕組みを実際の画面を使って紹介します。
前回の記事では、今回のシリーズのコンセプトそのものについて解説しましたが、具体的内容に入っていきましょう!
目次
私が目指したもの
コード修正ではなく ⇒設定修正で済む世界です!
しかも、次回同じような転記ツールを作成する場合も、転記ツールをコピーして済む世界です。
転記マッピングシートとは
それでは、
転記マッピングシートについての解説を「概要」と「詳細」に分けて解説します。
概要
下の画像は、転記元と転記先の情報を事前に記したシートです。

こちらのマッピング表内では、転記元の「シート名」「転記元の行位置」「転記元の列位置」を記します。
それでは、実際の転記元についてみてみましょう!
下が転記元の画像です。
転記先は請求書のテンプレートです。
転記元で事前に、請求書の情報を記載して転記処理を行うというわけです。

マッピング表の右には、もちろん転記先も記してあります。

それでは次に、転記先について見てみましょう!。
下が転記先の画像です

赤字が実際に転記されるセルです。
冒頭のマッピング表には、解説した転記元と転記先の「シート」「行位置」「列位置」がまとめて記されているわけです。
詳細
マッピング表は1行毎に転記元と転記先の情報が記してあります。

作成するコードは1行毎に転記情報を取得し、転記処理を行います。
ということは、マッピング表の情報を変えれば、転記元や転記先を変えることができます。
ちなみに、画像内で列名が「A、B、C・・・」ではなく。「1、2、3・・・」で表示されています。
これはコードが列を「数値」で扱えるようにするために、エクセルの表示の仕方を変えてあります。
R1C1形式(列位置を数値にする仕組み)
列を数値で表示するには、まずエクセルの画面上のタブ「ファイル」⇒「その他」⇒「オプション」で変更します。

オプションの画面が表示されたら、上記の画像内の「数式」をクリックし、「数式の処理」の欄で「R1C1 参照形式を使用する」にチェックを入れます
そうすると、列の表示が変わります
実際のコードの内容
コード
以下の画像は、マッピング表を使用し転記処理を行う為のコードです。
エクセルファイル内でコードを書く画面の「Visual Basic」の画面の一部をそのままスクショしました。

いかがでしょうか?
え、これだけ・・・と感じましたでしょうか?しかも日本語が多い・・・
これは別な箇所に部品のコードがあり、そちらを呼び出して実行しているからです。
既に書いてあるコードを利用することで、カップラーメンのように少ない作業で処理が完了するわけです。
ついでに、部品名も工夫してあります。
部品名
コード内の「部品_最終行取得」の部品がどう書かれているかを、「概要だけ」見てみましょう。

上の画像の左に注目してください、標準モジュールの下に「Module_Parts」があります。

こちらに部品のコードが書かれています。
モジュールとは何?と思われた方は、今の段階では、ファイルの格納箇所を区分する「フォルダ」みたいなものです。
こちらの「Module_Parts」に部品「Function」として部品のコードを書いてあります。
このFunctionとは何?と思われた方は、ワークシートで使う「SUM関数」みたいなものだと思ってください。
次回、モジュールと合わせて詳細に解説します。
ちなみに、
作成した関数は、関数が書かれているモジュール名(フォルダ名)を書いて、更にピリオドを付けると、モジュール内の内容が選択できます。

便利なので、ぜひ覚えておいてください。
本題に戻ります。
コードの日本語化
関数の書き方自体も工夫していて、まず日本語名で関数を作成して、更に英語名の関数を呼び出すようにしています。
そうすることで、部品を日本語で扱えるようにしています。

部品についてはもちろん、読者の方に作成してもらうことは考えておりません。
次回の回で提供致します。
実は裏側で5つの部品が動いている
構成部品
上のコードの画像内には3つの部品が見えたはずです。
実際には、もう2つの部品が「部品_転記_セル単位」内で働いています。
ここで「部品_代入_セル」は、何を行う部品なのかはすぐにイメージできると思います。
代入元と代入先のセル位置を指定して、値を代入します。
部品_シート存在チェックはどうでしょうか?
何をするかがすぐにイメージできないかもしれません
エラーチェック
部品_シート存在チェックを組み合わせているのは、マッピング表にファイル内に存在しないシートが指定された場合の処理の為です。
例えば、ファイル内に存在しない「売上」というシートを下の画像のように転記先に指定したとします。

そうすると、部品_シート存在チェックがマッピング表の1行毎に「シートの存在」をチェックします。

上のGIF動画は、実際にエラーが表示される時の様子です。
エラーの内容は、下の画像のように結構詳細に表示されます。

こういったエラー処理の仕組みも部品にはきめ細かく組み込まれています。
ですので、未経験の方でも無理なくVBA作成を進められるように工夫しています。
<まとめ>
今回は転記マッピングシートと部品を組み合わせることで、少ないコードで転記ツールを作れることを紹介しました。
しかし、
実際にコードを呼び出している
・Function
・CALL
・モジュール
についてはまだ説明していません。
次回は、なぜ少ないコードで動くのか、
「部品化の仕組み」を解説します。











コメントを残す