Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » データがない場合のCurrentRegionは

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

Excel VBA(Visual Basic for Applications)で、RangeオブジェクトのCurrentRegionプロパティを使うと、

データがない場合のCurrentRegionは

アクティブセル領域を表すRangeオブジェクトを取得できます。

このRange.CurrentRegionプロパティに関して、
「vba currentregion シートにデータが無い場合」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

ワークシート上にデータが存在しないときに、Range.CurrentRegionが何を返すのか、どうなるのかを疑問に感じた方による検索キーワードでしょうか。

[スポンサードリンク]

CurrentRegionで返されるセル範囲を確認するサンプルマクロ

以下のようなSubプロシージャで、Range.CurrentRegionの戻りを確認することができます。

Sub CurrentRegionで返されるRangeを確認する()
 Dim rng As Range

 Set rng = Range("A1").CurrentRegion
 MsgBox rng.Address(False, False)
End Sub

A1:G7セルに隙間なくデータが入力されているときに、上記のマクロを実行すると、メッセージボックスには
「A1:G7」
と表示されます。

A1:G7セルのデータを削除してから再度実行すると、今度は、
「A1」
と表示されます。

これが、
「vba currentregion シートにデータが無い場合」
という検索をなさった方が求めていた答えです。

データを変更したりコードを変更したりしてサンプルマクロを実行しましょう

次に、G8:G20セルだけに隙間なくデータを入力して再度マクロを実行してみましょう。
この場合もやっぱり、
「A1」
と表示されます。

上記のプロシージャのコードは、
  Set rng = Range("A1").CurrentRegion
と、あくまでもA1セルのアクティブセル領域を取得するオブジェクト式になっているからです。

次に、
  Set rng = Range("A1").CurrentRegion
の部分を、
  Set rng = Range("G8").CurrentRegion
に変更してから実行しましょう。

今度は
「G8:G20」
と表示されます。
G8:G20セルに隙間なくデータを入力しているからです。

つづいてG8:G20セルのデータを削除して再度実行です。

今度はメッセージボックスに、
「G8」
と表示されます。

コードが、
  Set rng = Range("G8").CurrentRegion
と、G8セルのアクティブセル領域を取得するコードになっているからです。

これも、
「vba currentregion シートにデータが無い場合」
という検索をなさった方が求めていた答えのはずです。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » データがない場合のCurrentRegionは

「CurrentRegionプロパティ」の記事一覧

検索


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

.