Range.Item プロパティ (Excel)
指定したセル範囲のオフセット値で指定される範囲を表す Range オブジェクトを返します。
式。Item (RowIndex、 ColumnIndex)
expression は Range オブジェクトを表す変数です。
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
RowIndex | 必須 | バリアント型 | 2 番目の引数が指定されている場合は、返すセルの相対行番号。 2 番目の引数が指定されていない場合は、返すサブ範囲のインデックス。 |
ColumnIndex | 省略可能 | バリアント型 | 返すセルの相対列番号。 |
expression が単一セルのコレクションを含む範囲ではない場合 (たとえば、 が Columns メンバーを介して取得されているため)、2 番目の引数を指定すると無効になり、エラー 1004 が発生します。
Range の既定のメンバーは、パラメーターを持つ呼び出しを Item メンバーに転送します。 したがって、 someRange(1)
と someRange(1,1)
はそれぞれ と someRange.Item(1,1)
同等someRange.Item(1)
です。
RowIndex 引数と ColumnIndex 引数は、Area メンバーによって返される範囲の最初の領域の左上のセルに対する相対 1 から始まるオフセットです。つまり、範囲Union(someSheet.Range("Z4:AA6"), someSheet.Range("A1:C3"))
Item(1,1)
の場合は、アドレスが 4 ドルの範囲$Z返されます。
ColumnIndex は、数値インデックスとして、または A1 表記のように列アドレス文字列として指定できます。つまり"A"
、数値インデックス1
と "AA"
を27
参照します。
Item プロパティを使用して元の範囲外のセルを参照するには、適切な引数を指定します。たとえば、 のセル"D4"
は 範囲 someSheet.Range("B2:C3")
に対して を返します。 Item(3,3)
パラメーターを 1 つだけ指定するときに返される範囲は、範囲の性質によって異なります。
セルと Range メンバーから返される単一セルで構成される範囲の場合、Item は 1 つのセルを返します。 RowIndex パラメーターは、2 次元配列の場合と同様に、上から下より左から右の範囲の最初の領域を列挙するときのインデックスを参照します。 RowIndex が範囲の最初の領域のセル数より大きい場合は、領域が下方向に拡張されたかのように列挙されます。
行範囲で構成される範囲の場合、 行によって返されるように、 Item は行範囲を返します。 パラメーター RowIndex は、範囲の最初の行から上から下への方向の 1 から始まるオフセットです。
列範囲で構成される範囲の場合、 Columns によって返されるように、 Item は 列範囲を返します。 パラメーター RowIndex は、左から右の方向の最初の列からの 1 から始まるオフセットです。 この状況では、インデックスを列アドレス文字列として指定することもできます。
次の例では、両方のパラメーターが指定されている場合に返されるセルを示します。
Public Sub PrintAdresses()
Dim exampleRange As Excel.Range
With ThisWorkbook.Worksheets("ExampleSheet")
Set exampleRange = Application.Union(.Range("B2:D4"), .Range("A1"), .Range("Z1:AA20"))
End With
Debug.Print exampleRange.Item(1,1).Address 'Prints "$B$2"
Debug.Print exampleRange.Item(2,4).Address 'Prints "$E$3"
Debug.Print exampleRange.Item(20,40).Address 'Prints "$AO$21"
Debug.Print exampleRange.Item(2,"D").Address 'Prints "$E$3"
Debug.Print exampleRange.Item(20,"AN").Address 'Prints "$AO$21"
End Sub
次の例は、パラメーターが 1 つだけ指定されている場合にサブ範囲が返される範囲の種類を示しています。
Public Sub PrintAdresses()
Dim exampleRange As Excel.Range
With ThisWorkbook.Worksheets("ExampleSheet")
Set exampleRange = Application.Union(.Range("B2:D4"), .Range("A1"), .Range("Z1:AA20"))
End With
Debug.Print exampleRange.Cells.Item(1).Address 'Prints "$B$2"
Debug.Print exampleRange.Cells.Item(2).Address 'Prints "$C$2"
Debug.Print exampleRange.Cells.Item(4).Address 'Prints "$B$3"
Debug.Print exampleRange.Cells.Item(10).Address 'Prints "$B$5"
Debug.Print exampleRange.Rows.Item(1).Address 'Prints "$B$2:$D$2"
Debug.Print exampleRange.Rows.Item(10).Address 'Prints "$B$11:$D$11"
Debug.Print exampleRange.Columns.Item(1).Address 'Prints "$B$2:$B$4"
Debug.Print exampleRange.Columns.Item(10).Address 'Prints "$K$2:$K$4"
Debug.Print exampleRange.Columns.Item("A").Address 'Prints "$B$2:$B$4"
Debug.Print exampleRange.Columns.Item("J").Address 'Prints "$K$2:$K$4"
End Sub
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。