「Exel Range.Next」
「C# Range.Next」
といった検索キーワードでのアクセスに気付きました。
RangeオブジェクトのNextプロパティについて調べていた方による検索です。
Range.Nextはその名のとおり「次」のセルを表すRangeオブジェクトを返すプロパティです。「次」がどれなのかを確認しておきましょう。
Range.Nextの基本を確認するサンプルマクロ
A1セルがアクティブな状態で以下のSubプロシージャを実行すると、Ragne.NextはB1セルを表すRangeオブジェクトを返すことを確認できます。
Dim rng As Range
Set rng = ActiveCell
MsgBox rng.Address(False, False)
rng.Select
rng.Next.Select
End Sub
次のセルは、ワークシート上で[Tab]キーを押すと移動する先のセルです。
XFD1048576がアクティブな場合
XFD1048576セルがアクティブな場合、[Tab]キーを押しても何の変化もありません。
XFD1048576セルがアクティブな場合に上記のSubプロシージャを実行すると、
「RangeクラスのNextプロパティを取得できません。」
実行時エラーが発生します。
セル範囲の場合のRange.Nextを確認するサンプルマクロ
セル範囲の場合、次がどれなのか気になる方も多いでしょう。
Dim rng As Range
Set rng = Range("A1:G7")
MsgBox rng.Address(False, False)
rng.Select
rng.Next.Select
End Sub
元のRangeオブジェクトがA1:G7セルを表すセル範囲の場合でも、Ragne.NextはB1セルを表すRangeオブジェクトを返します。
行・列の場合のRange.Nextを確認するサンプルマクロ
行・列を表すRangeとセル範囲を表すRangeが違うことをご存知の方は、行を表すRangeの場合、次がどれなのか気になるはずです。
Dim rng As Range
Set rng = Rows(1)
MsgBox rng.Address(False, False)
rng.Select
MsgBox rng.Next.Address(False, False)
rng.Next.Select
End Sub
Sub Range_Nextの確認_列()
Dim rng As Range
Set rng = Columns(1)
MsgBox rng.Address(False, False)
rng.Select
MsgBox rng.Next.Address(False, False)
rng.Next.Select
End Sub
これらもやっぱりB1セルを表すRangeが取得できます。
Home » Excel VBA Rangeオブジェクト » Range.Nextプロパティとは