Home » Excel VBA Rangeオブジェクト » Range.Nextプロパティとは

対象:Excel2010, Excel2013, Windows版Excel2016

「Exel Range.Next」
「C# Range.Next」
といった検索キーワードでのアクセスに気付きました。

オブジェクトブラウザー:Range.Next

RangeオブジェクトのNextプロパティについて調べていた方による検索です。

[スポンサードリンク]

Range.Nextはその名のとおり「次」のセルを表すRangeオブジェクトを返すプロパティです。「次」がどれなのかを確認しておきましょう。

Range.Nextの基本を確認するサンプルマクロ

A1セルがアクティブな状態で以下のSubプロシージャを実行すると、Ragne.NextはB1セルを表すRangeオブジェクトを返すことを確認できます。

Sub Range_Nextの確認_ActiveCell()
 Dim rng As Range

 Set rng = ActiveCell
 MsgBox rng.Address(False, False)
 rng.Select

 MsgBox rng.Next.Address(False, False)
 rng.Next.Select
End Sub

次のセルは、ワークシート上で[Tab]キーを押すと移動する先のセルです。

XFD1048576がアクティブな場合

XFD1048576セルがアクティブな場合、[Tab]キーを押しても何の変化もありません。

XFD1048576セルがアクティブな場合に上記のSubプロシージャを実行すると、
「RangeクラスのNextプロパティを取得できません。」
実行時エラーが発生します。

セル範囲の場合のRange.Nextを確認するサンプルマクロ

セル範囲の場合、次がどれなのか気になる方も多いでしょう。

Sub Range_Nextの確認_セル範囲()
 Dim rng As Range

 Set rng = Range("A1:G7")
 MsgBox rng.Address(False, False)
 rng.Select

 MsgBox rng.Next.Address(False, False)
 rng.Next.Select
End Sub

元のRangeオブジェクトがA1:G7セルを表すセル範囲の場合でも、Ragne.NextはB1セルを表すRangeオブジェクトを返します。

行・列の場合のRange.Nextを確認するサンプルマクロ

行・列を表すRangeとセル範囲を表すRangeが違うことをご存知の方は、行を表すRangeの場合、次がどれなのか気になるはずです。

Sub Range_Nextの確認_行()
 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プロパティとは

「Excel VBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.