Excelで使用される関数には、ワークシート関数とVBA関数がある。ワークシート関数はExcelの「数式」で使用され、VBA関数はVBAの「関数」とは別物である。範囲を指定して、列と行が交差する位置にあるセルの値を取得するには、WorksheetFunction.Index関数を使用する。MATCH関数を使用して、指定した値に一致するセルの位置を検索することもできる。また、VLOOKUP関数を使用して、指定された範囲の1列目で指定された値を検索し、その範囲内の別の列の同じ行にある値を返すことができる。これらの関数は、ほとんどが検索に関する関数である。
Bing AIの説明
INDEX関数は、指定した範囲から特定の行と列にある値を返します。
MATCH関数は、指定した範囲から特定の値と一致する位置を返します。
VLOOKUP関数は、指定した範囲の最左列から特定の値と一致する行を見つけて、その行の別の列にある値を返します。
VBAでは、これらの関数を直接使うことはできませんが、WorksheetFunctionオブジェクトのメソッドとして使うことができます。
例えば、以下のようなコードで、A1からA10までの範囲にある「りんご」という値の位置をMATCH関数で探し、その位置に対応するB1からB10までの範囲の値をINDEX関数で取得することができます。
Dim position As Long
Dim value As Variant
position = WorksheetFunction.Match("りんご", Range("A1:A10"), 0)
value = WorksheetFunction.Index(Range("B1:B10"), position)
MsgBox value
VLOOKUP関数を使う場合は、以下のようなコードで同じ結果が得られます。
Dim value As Variant
value = WorksheetFunction.VLookup("りんご", Range("A1:B10"), 2, False)
MsgBox value
以上がVBAでINDEX、MATCH、VLOOKUPの使い方の概要です。
https://atmarkit.itmedia.co.jp/ait/articles/1506/19/news015.html
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image