教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAのWorksheetFunctionオブジェクトで使用するMatch関数の使い方

構文

構文は以下の通りです。

WorksheetFunction.Match(検索値, 検索範囲, [照合の種類])

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Match関数は、範囲内から指定した値を検索して、上から数えた位置を求めます。検索値には、探したい値(数値や文字)を指定します。検索範囲には、セルの範囲を指定します。照合の種類(省略可能)には、以下の値を指定します。

引数 内容
0 完全に一致するものを探します。
1 検索値以下で最大の値を探します。(検索範囲は昇順に並んでいる必要があります)
-1 検索値以上で最小の値を探します。(検索範囲は降順に並んでいる必要があります)

プログラミング例

具体的なプログラミング例を紹介します。

Sub 果物を探そう()
    Dim 探す果物 As String
    Dim 見つけた位置 As Variant
    ' 探したい果物の名前を入れます
    探す果物 = "りんご"
    ' A1からA5の中で果物を探します
    見つけた位置 = WorksheetFunction.Match(探す果物, Range("A1:A5"), 0)
    ' 結果を表示します
    MsgBox "見つけた" & 探す果物 & "は、A" & 見つけた位置 & "にあります。"
End Sub

上記のプログラムは、Match関数を使って、A1からA5の中でその果物が何番目にあるかを調べます。最後に、結果をMsgBoxで表示します。

まとめ

Match関数は、特定の値がリストのどこにあるかを見つける事ができます。これを使えば、多くのデータの中から欲しい情報を簡単に探し出すことができます。