Vlookup 関数は、Excel をある程度使い慣れた人であれば経験したことがあると思います。
検索に使うことができる関数で、Excel の関数の中でも最大級に便利なものです。
さて、この便利な Vlookup 関数は実は Excel VBA でも使うことができます。
今日はその方法についてお話ししますね!
次の「従業員の情報」が入った表を例にあげます。
この表のクリーム色のセル「H4」に従業員の名前を入力すると
・セル「H5」に性別
・セル「H6」に年齢
を表示するようにしたいと思います。
1、Excel 関数の Vlookup 関数を使う場合
まず、普通に Excel 関数として Vlookup 関数を使う場合をざっとお話しします。
Vlooup 関数は次のように記述して使います。
「検索方法」は TRUE の場合が近似一致、FALSE は完全一致となります。
これを使って名前から性別と年齢を検索する場合、それぞれ次のように記述します。
●性別はセル「H5」に「=VLOOKUP(H4,B6:D15,2,FALSE)」
●年齢はセル「H6」に「=VLOOKUP(H4,B6:D15,3,FALSE)」
以前に VLookup 関数の使い方について記事を書きましたので参考にして下さい↓
以後でお話しするする VBA での記述方法は Excel シート上で使う場合と若干異なりますので、上記と比べながらその違いを確認していただきたく。
2、Vlookup 関数を VBA で使う場合
さて、次に性別と年齢を VBA で Vlookup 関数を使って表示してみますね。
VBA コードは以下のようになります。
プロシージャ名を「Vlookup」としています。
全 VBA コード
1 2 3 4 5 6 7 8 9 |
Sub Vlookup() '性別を検索してセル「H5」に表示' Cells(5, 8) = Application.Vlookup(Cells(4, 8), Range("B6:D15"), 2, False) '年齢を検索してセル「H6」に表示' Cells(6, 8) = Application.Vlookup(Cells(4, 8), Range("B6:D15"), 3, False) End Sub |
Vlookup 関数の記述方法
さて、Vlookup 関数を取りあげましたが、何もこの関数に限ったこともなく VBA で Excel 関数を 使うことができます。
Application オブジェクトを使い、次のように記述します。
頭に「Application.」と付けて Excel 関数を記述すると覚えましょう!
性別を検索するための Vlookup 関数は以下のように記述しています。
Excel シート上で関数を使う場合と比較すると Application を付ける以外にも違いがあるのが分かると思います。
VLOOKUP(H4,B6:D15,2,FALSE)
Application.Vlookup(Cells(4, 8), Range(“B6:D15”), 2, False)
異なる点は以下です。
・検索値の「H4」は VBA で表記すると「Cells(4, 8)」 ・範囲の「B6:D15」は VBA で表記すると「Range(“B6:D15”)」
VLookup 変数の4つの引数の内容はまったく変わりませんが、表記の仕方は VBA の書き方に従わなければなりません。
3、まとめ
Vlookup 関数を Excel VBA で使う方法を紹介しました。
VBA でコードを書いていると、ふと Vlookup 関数を使いたいと思うケースが出てきます。
そんな時は今日お話しした内容を参考にしていただければと思います!
編集後記
この週末(3連休)は2日間が子供の運動会でした。
6日(土)は娘の幼稚園の運動会で、7日(日)は息子の校区祭。
2人とも一生懸命走ってました!
私も幼稚園の父親リレーに出ました。チームが優勝してメダルゲットしましたよ~(笑)