Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの戻り値を変数に代入する

CurrentRegionの戻り値を変数に代入する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2207 ビルド15427.20210 Microsoft Store)

「currentregionで取得した レンジ範囲を変数に入れる」
といった検索でアクセスがありました。

Excel VBAのRange.CurrentRegionプロパティで取得したRangeオブジェクトを、

変数に代入するにはどのようなコードを書けばいいのか調べていた方による検索です。

[スポンサードリンク]

以下のようなコードを書いてみたものの

Dim rng As Range
rng = ActiveCell.CurrentRegion

「実行時エラー'91':オブジェクト変数またはWithブロック変数が設定されていません。」
エラーになってしまったのかもしれません。

CurrentRegionの戻り値を変数に代入するサンプルマクロ

以下のExcelマクロを参考にしてください。

Sub CurrentRegionsで取得したRangeを代入し確認する()
 Dim rng As Range
 Set rng = ActiveCell.CurrentRegion
 rng.Select
 MsgBox rng.Address(False, False)
End Sub

実行すると、「ActiveCell.CurrentRegion」で取得したアクティブセル領域が選択され、そのセル番地がメッセージボックスに表示されます。

ポイントは、

Set rng = ActiveCell.CurrentRegion

の「Set」です。

VBAではオブジェクト変数への代入にSetが必要

VBAの場合、単なるデータを変数に代入する場合は、キーワードを使わず

変数 = 単なるデータを取得する式

といった書き方ができますが、オブジェクトの場合には

Set オブジェクト変数 = オブジェクトを取得する式

とSetキーワードを使う必要があります。

この仕様はExcel VBAのRangeオブジェクトに限らず、Access VBAでもWord VBAでもPowerPoint VBAでも、ありとあらゆるオブジェクトで共通するVBAの仕様です。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの戻り値を変数に代入する

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

検索


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

.