Excel VBAでセルの選択位置を移動する:Offset

ある選択範囲を基準として他の選択範囲を指定したい場合には Offset プロパティが利用できます。ここでは、Offset プロパティの使い方について説明します。

Offset プロパティの使い方

Offset プロパティの構文は以下の通りです。

Rangeオブジェクト.Offset(行の移動値, 列の移動値)

行の移動値はプラスが下方向、マイナスが上方向になります。列の移動値はプラスが右方向、マイナスが左方向になります。

選択位置を移動する

たとえば、セルA1から下に2、右に3移動した位置のセルを選択するには以下のように記述します。

Range("A1").Offset(2, 3).Select

上のプログラムを実行するとセルD3が選択された状態になります。

vba_offset1

マイナスを使った例を見てみましょう。

以下はセルE8から上に5、左に3移動した位置のセルを選択する例です。

Range("E8").Offset(-5, -3).Select

上のプログラムを実行するとセルB3が選択された状態になります。

vba_offset2

もしA列よりも左、1行目よりも上になるような値を指定した場合は、エラーになるので注意してください。

Range("A1").Offset(-2).Select

vba_offset3

範囲選択の位置を移動する

セルの範囲選択の場合も同様に Offset で処理できます。

Range("A1:C3").Offset(1, 1).Select

Offset は移動を行うだけなので、選択範囲の大きさも元のセル範囲と同じになります。

vba_offset4

現在の選択範囲を移動する:Selection

Selection を使うと現在選択されているセル範囲を取得することができます。

以下は、現在の選択範囲の2つ右の位置を選択する例です。

Selection.Offset(0, 2).Select

vba_offset6


イベント

2017/12/05(火)
Design Thinking Square