Excel VBAでVLOOKUP関数を使って名前に対応する売上金額を取得する方法|エラー処理付きで安心運用

Excelでは、表形式のデータから特定の情報を検索・取得する場面が多くあります。
特に、「名前に対応する売上金額」や「商品に対応する単価」など、関連表からの値の取得は定型業務において頻出の作業です。

本記事では、VBAからVLOOKUP関数を呼び出して目的のデータを検索し、対応する値を取得する方法をご紹介いたします。エラー処理も加えて、実務でも安心して使える形に仕上げております。


目次

想定される活用例

  • 名前やIDを指定して、該当する売上・点数・数量などを取得したい。
  • 表形式で整理されたデータから、対応する値を素早く抜き出したい。
  • データが存在しない場合にもエラーを回避して処理したい。

VBAコードの例

以下のコードでは、「森」という名前に対応する売上金額を、範囲 C2:E11 の中から検索し、3列目の金額を取得してメッセージで表示します。

Sub LookupSalesByName()

    Dim lookupName As String
    Dim salesAmount As Long

    lookupName = "森"

    On Error GoTo ErrHandle

    salesAmount = WorksheetFunction.VLookup( _
        lookupName, _
        Range("C2:E11"), _
        3, False)

    MsgBox lookupName & "の売上金額は " & salesAmount & " 円です。", vbInformation
    Exit Sub

ErrHandle:
    MsgBox "該当する名前は見つかりませんでした。", vbExclamation

End Sub

コードの解説

処理項目説明
VLookup(lookupName, Range, 3, False)指定した名前と一致する行の「3列目」の値を取得します(Falseは完全一致)。
On Error GoTo ErrHandleデータが存在しない場合でも処理が止まらないようにエラーハンドリングを設定。
MsgBox結果をユーザーにわかりやすく表示。

注意点と補足

  • 検索対象の名前が「C列の先頭列(1列目)」である必要があります。
  • 列番号 3 は、検索範囲 C2:E11 における「3列目(=E列)」を意味します。
  • 見つからなかった場合に備えて、必ず On Error による処理分岐を入れるのが推奨です。

まとめ

Excel VBAでVLOOKUP関数を活用すれば、表からの値取得をシンプルかつ柔軟に実装することができます。
実務でよくある「名前に対応する値の取得」や「コードから情報を引き出す」処理に最適です。

また、エラー処理を加えておくことで、該当データが存在しない場合にも安全に動作する堅牢なマクロとなります。
繰り返し使いたくなる定番テクニックですので、ぜひご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次