アクセスログを眺めていて、
「エクセル マクロ vlookup 関数 別シート」
「vba vlookup 別のシートの値を参照する」
「vba 他シートでworksheet.function.vlookup関数を使用するときはactivateにしなければならばいのか」
といった検索キーワードに気づきました。
Excel VBAでWorksheetFunction.VLookupメソッドを利用する際、
別シートからデータ取得するにはどうすればいいのか、探していた方による検索キーワードです。
別シートからVLookupするサンプルマクロ
「マスター」シートに下図のようなデータを入力しておいて、
アクティブなシートのA1セルにキーが入力されているときに、以下のSubプロシージャを実行すると、A1セルに入力されたキーを「マスター」シートで調べて該当する値がB1セルに入力されます。
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引数[範囲]に該当する、
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