【EXCEL VBA】VLookup関数利用時のエラーを消したい

WorksheetFunction.VLookup関数は、該当データが見つからなかった場合は、「実行時エラー ‘1004’ WorksheetFunctionクラスのVLookupプロパティを取得できません。」となりプログラムが止まってしまいます。今回は、この問題を回避する方法を紹介します。

解決策としては、On Error Resume Next文とOn Error GoTo文を組み合わせることとなります。今回は、以下のシートを準備して、VLookup関数で該当する文字列を確認します。

サンプルプログラム

Sub sample()

    Dim str As String

    On Error Resume Next
    str = WorksheetFunction.VLookup(Range("B1"), Range("D1:E9"), 2, False)
    On Error GoTo 0

    Range("B2") = str

End Sub

出力結果

今回はB1セルに存在するキーを入力しているため、B2セルにアルジェリアが期待通りに出力されています。B1セルに存在しないキーを入力して、マクロを再実行してみてください。エラーとはならずプログラムは正常終了します。(B2セルは空白になります)