見出し画像

エクセルVBAでクラスモジュールを使う  【第5回】VLOOKUPの数式は引数に応じてVBAが代わりに書いてくれる

VLOOKUP関数をVBAで使う場合、「Sheet1のA列の検索値が、Sheet2のA列と合致した時に、Sheet2のC列のデータをSheet1のB列に持ってくる」といった決め打ちのプロシージャを作る場合はネットで検索すると結構出てくる。でも、「もっと汎用的に使い回しができる方法はないか?」と考えてみたところ、以下のようにならできた。

GenVlookup(シート名1, 検索値1セル, シート名2, 検索値2セル, 取得データセル, 数式組み込みセル)
「シート名1の検索値1セルの列が、シート名2の検索値2セルの列と合致した時に、シート名2の取得データセルの列のデータをシート名1の数式組み込みセルの列に持ってくるようにVLOOKUPの数式を組み立てて入れる」

Call 汎用.GenVlookup("MainSheet", "B2", "RefSheet", "A2", "D2", "F2")
※引数として入れるセル情報は、フィールド名直下の1件目のデータ
このプロシージャを実行することでF2~F10セルにVLOOKUPの数式を
書き込める                          


黄色の部分「汎用.Ck_EndxlDown0_F(WS1, Key1Cell)」は
「【第4回】VBAで相対参照の四則演算式を指定列に入れる」を参照

汎用的なプロシージャを増やしていくことで、プログラムを書くというよりも引数をセットしてプロシージャを組み合わせて実行するだけで処理できてしまうことが増えてきた。

この記事が気に入ったらサポートをしてみませんか?