Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » VBAで別シートからVLookup

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

アクセスログを眺めていて、
「エクセル マクロ vlookup 関数 別シート」
「vba vlookup 別のシートの値を参照する」
「vba 他シートでworksheet.function.vlookup関数を使用するときはactivateにしなければならばいのか」
といった検索キーワードに気づきました。

Excel VBAでWorksheetFunction.VLookupメソッドを利用する際、

VBAで別シートからVLookup

別シートからデータ取得するにはどうすればいいのか、探していた方による検索キーワードです。

[スポンサードリンク]

別シートからVLookupするサンプルマクロ

「マスター」シートに下図のようなデータを入力しておいて、

VBAで別シートからVLookup

アクティブなシートのA1セルにキーが入力されているときに、以下のSubプロシージャを実行すると、A1セルに入力されたキーを「マスター」シートで調べて該当する値がB1セルに入力されます。

VBAで別シートからVLookup

Sub 別のシートからVLookup()
 Dim tbl As Range
 Set tbl = Sheets("マスター").Range("A1:B7")

 Dim key As Long
 key = Range("A1").Value

 On Error Resume Next
 Dim ret As String
 ret = WorksheetFunction.VLookup(key, tbl, 2, False)
 On Error GoTo 0

 Range("B1").Value = ret

End Sub

別シートからVLookupするには引数[範囲]をWorksheetから指定

ポイントは、
  Dim tbl As Range
  Set tbl = Sheets("マスター").Range("A1:B7")
の部分です。

VLOOKUP関数の第2引数[範囲]に該当する、

VBAで別シートからVLookup

WorksheetFunction.VLookupメソッドの、第2引数に指定するRangeオブジェクトを、
  Set tbl = Sheets("マスター").Range("A1:B7")
  ret = WorksheetFunction.VLookup(key, tbl, 2, False)
のように、Worksheetオブジェクトを取得する式から書けば、別シートからVlookupしてデータを取得できるということです。

最終更新日時:2019-03-07 11:21

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » VBAで別シートからVLookup

「WorksheetFunction」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.