次のコードはセル範囲B2:B10の中でセルD1に入力された文字列の上からの位置を探し、A列の数値をD3に入力するコードである。空欄に入る適切な語句を解答しなさい。
Sub Exam1()
Dim N As Long
With WorksheetFunction
N = . 【 ① 】 (Range("D1"), Range ("B2:B10"), 0)
Range ("D3") = . 【 ② 】 (Range ("A2:A10"), N)
End With
End Sub
正解
【 ① 】match
【 ② 】index
解説
Match関数・・・検索する文字列が指定した範囲の中で、列の上から何番目に存在しているかを調べることができる
構文:Match(検索値,検索範囲,一致の型)
一致の型 0…完全一致 1…検査値以下の最大値
Index関数・・・指定した位置にあるデータを取得する
構文:NDEX(範囲, 行番号, 列番号)
表の右側を検索して左側を取得するのはVLOOKUP関数ですが、それができない時は、Match関数とIndex関数を使用し検索することができます。
[コード解説]
Sub Exam1()
Dim N As Long
' 変数Nを宣言し、マッチした位置を格納します。
With WorksheetFunction
' WorksheetFunctionを使用してワークシート関数を呼び出します。
N = .Match(Range("D1"), Range("B2:B10"), 0)
' Match関数を使い、セルD1に入力された文字列が
' 範囲B2:B10の中で何番目にあるかを取得し、変数Nに格納します。
Range("D3") = .Index(Range("A2:A10"), N)
' Index関数を使い、範囲A2:A10のN番目の値を取得して、セルD3に入力します。
End With
End Sub