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