今度こそ覚えるOffset
作るモノの仕様によっては絶対に覚えておいたら楽になるOffsetなのですが、いかんせん今までOffsetを使うような機会があまりなく
たまに使うと毎回調べてしまっているのでいい加減理解しようとしてみました。
文法
Rangeオブジェクト.Offset(行方向の移動値, 列方向の移動値)
これ自体をRangeオブジェクトとして扱うことができる。
つまり
'アクティブセルがB2セルになる Range("A1").Offset(1, 1).Select '選択範囲がB2:C3になる Range("A1:B2").Offset(1, 1).Select '選択範囲がC1:D2になる Range("B2:C3").Offset(-1, 1).Select 'エラー Range("A1:B2").Offset(-1, 1).Select
…つまり?
基本「Rangeオブジェクト.Offset()」もまたRangeオブジェクトである、
ということさえ理解すれば何も問題ない気がしてきました。
'1セルずつ移動しながら値をセットする書き方の例(Offset不使用 / Offset使用) Dim i As Long For i = 0 To 9 ' 1列目に1~10の数字 ThisWorkbook.Sheets("Sheet1").Cells(1 + i, 1).Value = 1 + i ' 2列目に1~10の数字 ThisWorkbook.Sheets("Sheet1").Cells(1, 2).Offset(i, 0).Value = 1 + i Next