「vba excel 最大化で表示されているか」
という検索キーワードでのアクセスに気が付きました。
Excel VBAでウィンドウが最大化されているかどうかを判定するには、どのようなコードを書けばいいのか探していた方による検索です。
ウィンドウが最大化されているか判定するサンプルマクロ
以下のようなコードで、ウィンドウが最大化されているかどうかを調べられます。
If ActiveWindow.WindowState = xlMaximized Then
MsgBox "最大化されています。"
Else
MsgBox "最大化されていません。"
End If
End Sub
ActiveWindowプロパティでアクティブなウィンドウを表すWindowオブジェクトを取得し、
Windowオブジェクトに用意されているWindowStateプロパティが、
定数xlMaximized(直値:-4137)に一致するかで、
最大化されているかどうか判定しています。
Windowオブジェクトをローカルウィンドウで確認しましょう
是非Windowオブジェクトがどのようなデータを持ったオブジェクトなのかを、拙著『いちばんやさしいExcel VBAの教本』でも多用しているローカルウィンドウで見ておきましょう。
Dim wnd As Window
Set wnd = ActiveWindow
Stop
End Sub
上記のSubプロシージャを実行してStopステートメントで中断モードになったら、メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して、オブジェクト変数wndの中身を確認しましょう。
この記事でご紹介しているWindowStateプロパティも、もちろん下図のように確認できます。
Active〇〇系プロパティ
また、ウィンドウの最大化に直接関係するわけではありませんが、Excel VBAをお使いならおなじみのActive〇〇系のプロパティを、Windowオブジェクトが持っていることにも、注目していただきたいと思っています。
最終更新日時:2023-07-04 15:51
Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » Excel VBAでウィンドウが最大化されているか判定する-WindowState = xlMaximized