Excel VBA XLOOKUPは指定された範囲から特定の値を検索

 

Excel VBA XLOOKUP関数は、指定された範囲から特定の値を検索し、その値に対応する別の範囲から結果を返すために使用されます。VBAコードでXLOOKUPを使うと、セル範囲内のデータを効率的に検索して値を取得できます。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel 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 には適切なデータ型を使用する必要があります。

 

Excel VBA XLOOKUPのサンプルコード
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初心者のための効果的な学習ガイド」をご確認ください。