Excel VBA XLOOKUP関数は、指定された範囲から特定の値を検索し、その値に対応する別の範囲から結果を返すために使用されます。VBAコードでXLOOKUPを使うと、セル範囲内のデータを効率的に検索して値を取得できます。具体的な使い方や、注意点やサンプルコードを紹介します。
以下のようなシーンで利用されます。
・特定のキーに対応する値を取得する。
・複数の条件に基づくデータの検索
XLOOKUPは、Excel VBAでは直接利用できないため、WorksheetFunctionオブジェクトを使用して呼び出します。構文は次の通りです。
WorksheetFunction.XLookup(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
・lookupValue : 検索する値
・lookupArray : 検索範囲
・returnArray : 検索結果を返す範囲
lookup_value や return_array には適切なデータ型を使用する必要があります。
Option Explicit
Sub UseXLOOKUP()
Dim ws As Worksheet
Dim result As Variant
Dim lookupValue As String
Dim lookupArray As Range
Dim returnArray As Range
' シートを指定
Set ws = ThisWorkbook.Sheets("Sheet1")
' 検索値を設定
lookupValue = "orange"
' 検索範囲と返す値の範囲を設定
Set lookupArray = ws.Range("A2:A10")
Set returnArray = ws.Range("B2:B10")
' XLOOKUPを使用して値を検索
On Error GoTo ErrorHandler
result = Application.WorksheetFunction.XLookup(lookupValue, lookupArray, returnArray, "見つかりません")
' 結果をセルに表示
ws.Range("D1").Value = result
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description
End Sub
1.変数の宣言
・ws : Worksheet 型の変数。作業シートを保持します。
・result : 検索結果を保持する変数
・lookupValue : 検索する値
・lookupArray : 検索範囲
・returnArray : 検索結果を返す範囲
2.シートの指定
・Set ws = ThisWorkbook.Sheets("Sheet1")` : Sheet1 を操作シートとして設定します。
3.検索値の設定
・lookupValue に検索する値を設定します。
4.検索範囲と返す範囲の設定
・Set lookupArray = ws.Range("A2:A10") : 検索範囲をA2からA10に設定します。
・Set returnArray = ws.Range("B2:B10") : 検索結果を返す範囲をB2からB10に設定します。
5.XLOOKUPの使用
・result = Application.WorksheetFunction.XLookup(lookupValue, lookupArray, returnArray, "見つかりません")` : XLOOKUP を使って検索し、結果を result に格納します。
6.結果の表示
・ws.Range("D1").Value = result : 検索結果をセルD1に表示します。
7.エラーハンドリング
・On Error GoTo ErrorHandler : エラーが発生した場合にエラーハンドリングルーチンにジャンプします。
・MsgBox "エラーが発生しました: " & Err.Description : エラーメッセージを表示します。
これで、簡単に XLOOKUP を利用してデータを検索し、結果を表示する方法を理解できます。
毎日のルーチン作業をExcel VBAで自動化し、時間を有効活用しませんか?Excel VBAエキスパート資格取得問題集を活用して資格取得、そして効率的な仕事を実現しましょう!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
ExcelVBAの学習方法で効果的な学び方を知りたい方は、下記「Excel VBA初心者のための効果的な学習ガイド」をご確認ください。