スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第10問 5章-1

次のコードはセル範囲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