【VBA】マクロにVLOOKUP関数を搭載しよう

VBA

VLOOKUP関数とは

特定のデータを指定範囲の左端で検索し、その行の指定した列番号の値を抽出する関数です。

=VLOOKUP(検索値 , 範囲 , 列番号 , FALSE)

実務ではデータベースや実績表から、欲しいデータを抽出する際に利用することが多い関数の1つと言えるでしょう。

VLOOKUP関数についてさらに詳しく知りたい方はこちらもチェックしてください

マクロにVLOOKUPを搭載させる方法は2つ

マクロにVLOOKUPを搭載させる方法は大きく2つあります。

  • VBAでVLOOKUP関数をセル内に埋め込む
  • マクロ内にVLOOKUP関数の機能を持たせる

VBAでVLOOKUP関数をセル内に埋め込む

VLOOKUP関数をセルへ手入力することと同様に、VBAでセルにVLOOKUP関数を入力する方法があります。

この方法の良いところは、手入力でVLOOKUP関数を扱える方なら、同じ感覚でVBAを書けば良いだけなので理解がしやすいポイントです。

具体的には、マクロでVLOOKUP関数を入力し、マクロ終了後に関数の計算がされる仕組みを作っていきます。

指定したセルに、手入力で作成する関数と同一のものを入力する指示をVBAで行います。

場合にもよりますが、関数を埋め込む際には自動計算を停止させると、処理速度が上がるため組み込むことをオススメします。

以上のような処理をすると、下記のような状態になります。

マクロ内にVLOOKUP関数の機能を持たせる

一方、マクロ内にVLOOKUP関数の機能を持たせる方法もあります。

こちらの方法は、マクロ自体にVLOOKUP関数の機能を搭載することにより、マクロ終了した時点で、VLOOKUP関数の計算まで完了した状態になります。

この方法の良いところは、シート自体に数式を入力しないため、メール用資料など作成の際に数式削除の工程が不要になることです。

具体的なコーディングについては下記の通りです。

表記は異なりますが、VLOOKUP自体は大きな差はありません。これからコーディングする方は、この式を模倣すれば良いでしょう。

ここで重要なものは「エラー回避」です。

マクロはエラーが発生すると停止してしまいます。しかし、VLOOKUP関数は「参照元に検索値がない」状態だけでエラーが発生します。

その都度、マクロのエラー画面が表示されると鬱陶しいので、「はなっからエラーは無視、もしエラーなら空白にすればいい」スタイルで行いましょう。

複数のデータを一気に抽出したい場合

上記2つの例のように、1つだけのデータではなく、複数のデータを一気に抽出したい場合

  • 反復処理
  • 抽出したいデータ個数の指定

2つの処理を組み合わせると、まとめてデータ抽出が可能になります。

詳細は作成中…

コメント

タイトルとURLをコピーしました