スタンダード 模擬問題

Excel VBA スタンダード 模擬試験 ランダム順出題 ⑤ 第6問 

 

次のコードは、A列から "Baseball" という値を探し、その値の位置に対応する B 列の値をメッセージボックスで表示するマクロである。

以下の空欄に入る適切な語句を選択しなさい。

Sub Exam1()

 Dim searchValue As String

 Dim result As Variant

 searchValue = "Baseball"

 result = WorksheetFunction.Match(searchValue, Range("A2:A11"), 0)

 If IsNumeric(result) Then

  MsgBox searchValue & " は " & result & " 行目にあり、対応する値は " & WorksheetFunction.【  ①  】(Range("B2:B11"), result) & " です。"

 Else

  MsgBox searchValue & " は見つかりませんでした。"

 End If

End Sub

excel-vba-standard-test-worksheet-function
正解

【  ①  】index

解説

【5章 ワークシート関数】

【Index関数】

Index関数 指定した位置にあるデータを取得することができます。

構文:Index(範囲,行番号,列番号)

【Match関数】

Match関数 検索する文字列が指定した範囲の中で、上から何番目に存在しているかを調べることができる。

構文:Match(検索値,検索範囲,一致の型)

一致の型 0…完全一致、1…検査値以下の最大値

excel-vba-standard-test-worksheet-function excel-vba-standard-test-worksheet-function

【コード解説】

Sub Exam1()

 Dim searchValue As String

'検索する値を格納する変数を宣言する。

 Dim result As Variant

'検索結果(位置)を格納する変数を宣言する。

 searchValue = "Baseball"

'検索する値 "Baseball" を変数 searchValue に代入する。

 result = WorksheetFunction.Match(searchValue, Range("A2:A11"), 0)

'範囲 "A2:A11" で "Baseball" を検索し、見つかった位置を `result` に格納する。

 If IsNumeric(result) Then

' `result` が数値の場合(値が見つかった場合)に次の処理を行う。

  MsgBox searchValue & " は " & result & " 行目にあり、対応する値は " & WorksheetFunction.Index(Range("B2:B11"), result) & " です。"

' resultの位置に対応する B 列の値を取得し、見つかった値の位置と B 列の値をメッセージボックスで表示する。

 Else

' result が数値でない場合(値が見つからなかった場合)に次の処理を行う。

  MsgBox searchValue & " は見つかりませんでした。"

'"Baseball" が見つからなかったことをメッセージボックスで表示する。

 End If

End Sub