Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » VBAで画面に表示されているセル範囲を取得する-Window.VisibleRangeプロパティ

VBAで画面に表示されているセル範囲を取得する-Window.VisibleRangeプロパティ

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2407(ビルド17830.20016クイック実行)ベータチャネル

「vba 表示 セル 取得」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスが時折あります。

何を調べていたのか、複数の可能性を考えられる検索です。

1つは、非表示になっている行や列があるときに、表示されているセル(可視セル)のみを取得する方法を調べていらした可能性です。
これについては、Range.SpecialCellsメソッドの引数に定数xlCellTypeVisibleを指定するコードを既にご紹介しています。

[スポンサードリンク]

他の可能性として、Excelの画面・ウィンドウに表示されているセル範囲を取得する方法を調べていた可能性も考えられます。

例えば、Excelの画面・ウィンドウが下図のようなときに、

表示されているB2:K8セルを表すRangeオブジェクトを取得する方法です。

画面に表示されているセル範囲を取得するサンプルマクロ

以下のExcelマクロを実行すると、表示されているセルを取得し、そのセル番地がメッセージボックスに表示されます。

Sub 表示されているセル範囲を取得する()
 Dim rng As Range
 Set rng = ActiveWindow.VisibleRange
 MsgBox rng.Address(False, False)
End Sub

サンプルマクロで行っている処理

Excel VBAのグローバルメンバーであるActiveWindowプロパティを使うと、Excelのウィンドウを表すWindowオブジェクトを取得できます。

ActiveWindowプロパティで取得したWindowオブジェクトに用意されているVisibleRangeプロパティを使うと、

表示されているセル範囲を表すRangeオブジェクトを取得できます。

上記のサンプルマクロでは最後に、Range.Addressプロパティを使ってセル範囲のセル番地を取得して、VBAのMsgBox関数でメッセージボックスに表示を行っています。

最終更新日時:2024-08-21 14:20

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » VBAで画面に表示されているセル範囲を取得する-Window.VisibleRangeプロパティ

「Windowオブジェクト」の記事一覧

検索


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

.