動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2407(ビルド17830.20016クイック実行)ベータチャネル
「マクロ 画面左上のセルを取得」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
例えば、Excelの画面・ウィンドウが下図のようなときに、
一番左上に表示されているG8セルを表すRangeオブジェクトを取得するには、どのようなコードを書けばいいのかを調べていらしたのでしょうか。
[スポンサードリンク]
画面左上のセルを取得するサンプルマクロ
以下のExcelマクロを実行すると、画面左上のセルを取得し、そのセル番地がメッセージボックスに表示されます。
Sub 画面左上のセルを取得する()
Dim rng As Range
Set rng = ActiveWindow.VisibleRange.Item(1)
MsgBox rng.Address(False, False)
End Sub
Dim rng As Range
Set rng = ActiveWindow.VisibleRange.Item(1)
MsgBox rng.Address(False, False)
End Sub
サンプルマクロで行っている処理
Excelのウィンドウを表すWindowオブジェクトに用意されているVisibleRangeプロパティを使うと、表示されてているセル範囲を表すRangeオブジェクトを取得できます。
そのセル範囲の先頭のセルを取得するために、Range.Itemプロパティの引数に
「1」を指定しています。
Set rng = ActiveWindow.VisibleRange.Item(1)
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » VBAで画面に表示されている左上のセルを取得する