【Excel VBA】VLOOKUP関数をFunctionで実行する

記事
IT・テクノロジー
最近、Twitter経由で結構、競馬の質問が来ています。
私なりの回答としては、せめて、VBAで、VLOOKUP関数とループは理解していたほうが、いいです。
このように回答しています。



VLOOKUP関数をFunctionで実行する


こんにちは。伊川です。
前回のライブ、ありがとうございました。
請求書、給料明細、会社で作成する帳票等の質問受付のために、ライブを開催しました。

しかし、そんなに質問はありませんでした。
でも、競馬の質問を受けました。
また、最近、Twitterからも、競馬の質問がありましたので、
競馬で、データベースを作成するにあたり、最低限の知識を紹介します。

また、競馬に特化した内容ではありません。

みなさんの会社でも、VLOOKUP関数を利用して、値を参照することはあると思います。
ぜひ、利用してみてください。

このブログはこんな人にお勧め

Excelで、VLOOKUP関数を利用している人
月末になると、Excelが重くなり、いやになっている人
ExcelでVBAを勉強している人

このブログを、読み終わるころには・・・・

VLOOKUP関数は、便利な関数です。
しかし、数式で大量に、Excelに埋め込むと、Excelの作動が重くなります。
そんな時は、今回紹介するコードを利用してみてください。
とてもカンタンということが理解できると思います。

ユーザー定義関数で、VLOOKUP関数を作成する

先日、他の部署で、システムを刷新したと聴きました。

余談ですが、会社には、普通、数人、VBAを利用できる人がいます。
自分以外の人が書いたコードを観ることは、とても重要であり、とても勉強になります。

私は、VLOOKUP関数は、嫌いですが、参考になるコードでした。

私の同僚が記載した、コードをアレンジしつつ、私なりのコードを紹介します。

題材は、競馬になります。

ご了承ください。

ユーザー定義関数で、VLOOKUP関数を作成する 作業手順 その1 私の同僚のコード

1.jpg

上記のようなコードになっています。
2.jpg



この赤枠の中を、引数と言います。
引数とは、VLOOKUP関数を、作動させるために、最低限必要な情報です。
そして、VLOOKUP関数を利用することで、得られた値を、戻り値と言います。
また、巷では、関数を呼び出すという言い方を、よく利用しますが、関数を使うという意味です。

VLOOKUP関数の呼出とは?
VLOOKUP関数の呼出とは、VLOOKUP関数を利用すること
VLOOKUP関数の引数とは、検査値、範囲、列番号、検索方法
VLOOKUP関数の戻り値とは、VLOOKUP関数を利用することで、求められた値

なんで、敢えて、難しい言葉を利用するのでしょうか?
この辺で、挫折した人も多いと思います。

しかし、私の同僚のコードは、汎用性が有りません。
Functionの中で、すべてを指定するとは、やめましょう。

ユーザー定義関数で、VLOOKUP関数を作成する 作業手順 その2 データベースを確認

3.jpg


今回は、レースIDをもとに、調教師、騎手、馬名、馬番を転記します。

ユーザー定義関数で、VLOOKUP関数を作成する 作業手順 その3 VLOOKUP関数の元を作成

Functionでは、VLOOKUP関数の概要だけを記載します。
そして、検査値は何?、範囲は、どこ?、列番号は、何番?
上記の情報は、別途、指定します。
この点を理解してください。
そのほうが、汎用性があります。

ユーザー定義関数で、VLOOKUP関数を作成する 作業手順 その4 詳細な情報を記載


5.jpg

関数を呼び出す側、つまり、関数を利用するコード側で、VLOOKUP関数の詳細な引数、つまり、VLOOKUP関数を作動させるための情報を記載します。
そして、VLOOKUP関数を呼び出す、つまり、Functionで設定した、VLOOKUP関数を利用するということになります。

Vlookupではなく、ExeVlookupとしたほうがいいですね。
VBAで記載するときは、本来、Excelが持つ、関数と同じ名前にすると、予期せぬエラーが発生するかもしれません。

ユーザー定義関数で、VLOOKUP関数を作成する 作業手順 その5 不要な部分を削除

11.jpg

動画では紹介しませんでしたが、上記の赤枠は無駄です。
ここもループで処理します。

7.jpg
これで完成です。
二重ループに関しては、下記の記事を、参照してください。

ここがポイント

今回は、VLOOKUP関数をFunctionで利用するコードを紹介しました。
Functionは、何度も言いますが、消費税の計算や、合否判定だけではありません。
どんどん、コードを短くして、メンテナンスを楽にしましょう。
システムは、属人化させないことです。
しかし、今回は、競馬なので、完全個人利用かとおもいますので、属人化されても大丈夫でしょう。

まとめ

今回の題材は、競馬でした。
私のブログは、競馬にも利用できるし、ビジネスにも利用できます。
仕事と、趣味では、趣味のほうが、理解できると思います。
今回も、最後まで読んでいただきありがとうございました。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す