[Excel VBA]
「セルA1の2行下1列右」というように、基準となるセルから「○行△列」移動した位置にあるセルを参照するには、RangeオブジェクトのOffsetプロパティを使用します。
スポンサーリンク
書式
Rangeオブジェクト.Offset([RowOffset], [ColumnOffset])
Rangeオブジェクトで指定したセルを基準として、引数で指定した行数と列数だけ移動した位置にあるRangeオブジェクトを返します。読み取り専用のプロパティです。
Rangeオブジェクトでセル範囲を指定した場合は、それと同じサイズのRangeオブジェクトが返されます。
■引数
引数 | 指定 | 説明 |
---|---|---|
RowOffset | 省略可 | 移動する行数を指定する。下方向は正数、上方向は負数で指定する。 行を移動しない場合は「0」を指定するか、指定を省略する。 |
ColumnOffset | 省略可 | 移動する列数を指定する。右方向は正数、左方向は負数で指定する。 列を移動しない場合は「0」を指定するか、指定を省略する。 |
使用例
引数の指定例
次のコードでは、セルC3を基準として、隣接するセルに値を入力しています。
|
|
メモ
引数の省略
同じ行に移動する場合は引数[RowOffset]の指定を省略できますが、引数を区切る「,」(カンマ)は必要です。例えば、同じ行の右隣のセルへ移動するには「Offset(0, 1)」または「Offset(, 1)」と記述します。
同じ列に移動する場合は引数[ColumnOffset]の指定を「,」(カンマ)ごと省略してかまいません。例えば、同じ列のすぐ下のセルへ移動するには「Offset(1, 0)」または「Offset(1)」と記述します。
単一セルを指定した場合とセル範囲を指定した場合の違い
Offsetプロパティで取得されるセルのサイズは、Rangeオブジェクトで指定したセルと同じサイズです。
■単一のセルを指定した場合
Range("A1").Offset(2, 3).Select |
セルA1の 2 行下 3 列右のセルを選択する(セルD3が選択される) |
■セル範囲を指定した場合
Range("A1:B3").Offset(2, 3).Select |
セルA1~B3の 2 行下 3 列右のセル範囲を選択する(セルD3~E5が選択される) |
スポンサーリンク