【VBA】「Offset」を活用してみよう

VBA_Offset_1

VBAのOffsetプロパティは指定した箇所から
指定の数だけ(縦・横に)移動した範囲・地点を返してくれます。

Offsetの構文は以下のようになります。

Range.Offset (RowOffset, ColumnOffset)
使用例:Range(“C3”).Offset(1, -1).Value = “下に1・左に1すすむ”

 
この「RowOffset」「ColumnOffset」の箇所に数値を入れて
先頭の「Range」から
縦にいくつ・横にいくつ進んだ・戻ったセルの番地を返すか
を決める事が出来ます。

上の『使用例』を実行すると、
セル【B4】に “下に1・左に1すすむ” と入力されます。
 

広告

「Offset」早見表

例えば、セル【C3】を起点にするのであれば
↓の画像のような関係になります。
縦・横にいくつ進むか(+の値)・戻るか(-の値)
という風にそれぞれなります。
また、VBE上での表記では、「0」は省略できますので、
例えば、

VBA_Offset_4

「.Offset(-1, 0)」=「.Offset(-1)」…1つ↑のセルの値を返します
「.Offset(0, 1)」「.Offset(,1)」…1つ→のセルの値を返します。
私的には0でも表示があった方が、分かりやすくて良い気がしますが。
関係図をもう一度表示すると以上のようになります。

参考になれば幸いです。

広告