EXCEL VBAやPHP、Laravelに関するWINDOWS・WEBプログラミングの解説ブログです。

EXCEL VLOOKUP関数をVBAで表現

EXCEL VBAでVLOOKUP関数を表現




EXCEL VBAでVLOOKUP関数を表現しました。

当記事動画

VLOOKUP関数は、実務でよく使われています。また、VLOOKUP関数を使える使えないで、EXCELの習得度の判定をされることもあります。VLOOKUP関数は便利な機能ですが、物足りないところもあります。今回はVBAでVLOOKUP関数を表現するだけではなく、その足りないところも補完するように書いてみました。

VLOOKUP関数とは

=VLOOKUP(A3,function!$G$2:$I$18,2,0)   A3が検索値、範囲G2:I18内のG列を探索して、A3と完全一致したら、G2:I18表の2列目値をB2に出力します。

とても便利ですが、動画で解説しているように、マスター表に存在しない品番を入力したり、マスター表に同じ品番が重複している場合、ユーザーとしては、物足りない印象を受けます。VBAでVLOOKUP関数を表現するときは、そこを補完してみました。

VBA

エクセルのシートをクリックしたときに発火するプログラムですので、Sheet3(vba)のエディターにコードを書いていきます。

code = ActiveCell.Offset(-1, 0) → アクティブなセルの上のセルの値を変数codeに格納しています。
for文で変数codeと表内G列を一致する値がないか探索させます。
一致したら、8列目、9列目の値をアクティブなセルの上の行の右1列目、2列目に設置します。
一致したら、boolean型変数flagをTRUEとします。FALSEであったら、マスターに一致する品番がないことをメッセージ表示します。
一致したら、変数kaisu を1づつ加算します。kaisuが1より大きければ、マスター内に品番が重複していることをメッセージ表示します。

ですが、そもそも品番H003とか覚えられないですよね?次回の記事では、覚えなくてもよいような処理を公開します。

次回もよろしくお願いいたします。