火曜日, 3月 07, 2023

Excel VBA 05 
特定のセルと任意のセルからセル移動

特定のセルと任意のセルからのセル移動の指定方法は数値で指定します。

■指定セルを選択
任意の位置から特定のセルを絶対選択。

[書式]
Range(セル).Select

[D4]セルを選択
--------------------
Sub セルを選択()
Range("D4").Select
' D4セルを選択
End Sub
--------------------
※「'」以降はコメント文
処理結果です。どのセルを選択していても必ず[D4]セルを選択します。

■特定のセルから相対指定でセルを指定
特定のセルを基準として、行方向や列方向へ移動する指定。

[書式]
Cells(行インデックス, 列インデックス).Offset(行方向, 列方向)

[A1]から[D6]へ移動
--------------------
Sub 移動()
Cells(1, 1).Offset(5, 3).Select
' A1からD6へ移動
End Sub
--------------------
※「'」以降はコメント文
処理結果です。どのセルを選択していても必ず[A1]から[D4]セルを選択します。

■逆方向はマイナス指定
[D6]から[B3]へ移動
--------------------
Sub 移動()
Cells(6, 4).Offset(-3, -2).Select
' D6からB3へ移動
End Sub
--------------------
※「'」以降はコメント文
処理結果です。どのセルを選択していても必ず[D6]から[B3]セルを選択します。

■任意のセルから相対指定でセルを指定
任意のセルを基準として、行方向や列方向へ移動する指定。

[書式]
Activecell.Offset(行方向, 列方向)

任意のセルから5行下、3列右へ移動
--------------------
Sub 移動()
Dim i As Range
' iをRange設定
Set i = ActiveCell
' iを現在選択しているセルに指定
Debug.Print i.Address
' iの値をアドレスへ出力
i.Offset(5, 3).Select
' 現在のセル(i)から5行下、3列右に移動
End Sub
--------------------
※「'」以降はコメント文
[A1]を選択した状態で実行した場合の処理結果です。
現在選択しているセルから5行3列先のセルを選択します。

[B3]を選択した状態で実行した場合の処理結果です。現在選択しているセルから5行3列先のセルを選択します。

■逆方向はマイナス指定
任意のセルから3行上、2列左へ移動
--------------------
Sub 移動()
Dim i As Range
' iをRange設定
Set i = ActiveCell
' iを現在選択しているセルに指定
Debug.Print i.Address
' iの値をアドレスへ出力
i.Offset(-3, -2).Select
' 現在のセル(i)から3行上、2列左に移動
End Sub
--------------------
※「'」以降はコメント文
[E7]を選択した状態で実行した場合の処理結果です。
現在選択しているセルから3行2列手前のセルを選択します。

[C7]を選択した状態で実行した場合の処理結果です。
現在選択しているセルから3行2列手前のセルを選択します。