【用語集に記載の内容について】
用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。
また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。
【コードをコピーして実行する場合の注意】
文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。
INDEX関数(ワークシート関数)
名称 | INDEX関数(ワークシート関数) | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
説明 | 指定したセル範囲の行番号と列番号で指定された位置の値を返すワークシート関数です。 ** 注意 ** 引数「行番号」には、指定したセル範囲の上から何番目にあるかを指定します。ワークシート上の行番号ではありません。 |
|||||||||||||||||||||
書式 |
WorksheetFunction.Index(範囲, 行番号, 列番号) 範囲:検索するセル範囲を指定 行番号:指定したセル範囲の上から何番目にあるかを指定 列番号[省略可能]:検索するセル範囲で値を返す列の番号を指定 列番号を省略した場合は1となり、範囲に指定したセル範囲の1列目が対象となります。 |
|||||||||||||||||||||
コード例① |
【指定したセル範囲の上から3番目のセルの値を取得】 Sub Macro1() Dim data As String data = WorksheetFunction.Index(Range("A2:A5"), 3) MsgBox "上から3番目のデータ:" & data End Sub INDEX関数で、セル範囲A2:A5で、上から引数「行番号」に指定した値番目にあるセルの値を取得し、メッセージボックスに表示します。 マクロを実行すると、アクティブシートのセルの値が以下の場合、「上から3番目のデータ:banana」のメッセージボックスが表示されます。
|
|||||||||||||||||||||
コード例② |
【MATCH関数との組み合わせで値を取得】 Sub Macro2() Dim name As String, data As String Dim cnt As Long name = "城島" With WorksheetFunction '検索するデータが上から何番目にあるかを取得 cnt = .Match(name, Range("B2:B6"), 0) 'MACTH関数で取得した値を使用して、A列のセル範囲の値を取得 data = .Index(Range("A2:A6"), cnt) End With MsgBox name & "さんは、" & data & "所属です" End Sub 値を検索する列が、値を取得したい列より右にある場合は、MATCH関数とINDEX関数を組み合わせて値を取得します。 MATCH関数で、検索値「城島」が、アクティブシートのセル範囲B2:B6の上から何番目にあるかを取得し、変数cntに格納します。 INDEX関数で、アクティブシートのセル範囲A2:A6の上から変数cntの値番目のセルの値を取得します。 マクロを実行すると、アクティブシートのセルの値が以下の場合、MATCH関数で取得する値が4であり、INDEX関数で、セル範囲A2:A6の上から4番目のセルの値「総務部」を取得するので、「城島さんは、総務部所属です」のメッセージボックスが表示されます。
|
|||||||||||||||||||||
カテゴリ | スタンダード |