EXCEL VBAからVLOOKUP関数を指定する
VBAからもEXCELのVLOOKUP関数を指定することができます。
引数はEXCELで関数指定する場合と同じです。
Debug.Print Application.WorkSheetFunction.VLookup(ActiveSheet.Cells(1, 1), Sheets(1).Range("A1:D255"), 2, False)
VBAなので、セル範囲をループして検索してもいいんですが、せっかくのEXCELだし使えるものは使いたいですね。
ただし、上記の書き方をした場合、VLOOKUPの結果が見つからなかった場合、VBAのエラーが発生します。
「実行時エラー ‘1004’ :WorkSheetFunction クラスの VLookup プロパティを取得できません。」
このエラーを回避するには、関数の呼び出しを少し変更します。
Debug.Print Application.VLookup(ActiveSheet.Cells(1, 1), Sheets(1).Range("A1:D255"), 2, False)
WorkSheetFunctionの指定を省略するだけです。
このようにすればVBAでのエラーはなくなります。
その代わり、結果としては#N/Aが返ります。
VBAのON Errorで処理してもいいですし、戻り値の値で判断してもいいと思います。
== ランキングに参加しています。ぜひクリックお願いします ==
バッテリー残量30%程度でiPhoneがクラッシュするバグをAppleが修正する? ソフトバンクからauへMNPしました