WindowStateプロパティ
ウィンドウの表示を最大化や最小化したい場合はWindowStateプロパティを利用します。
WindowSteteプロパティで操作する「ウィンドウ」という言葉が指す対象はExcelのバージョンで異なります。
Excel2010まではマルチドキュメントインターフェース(MDI)のため、Excel自体のウィンドウであるアプリケーションウィンドウと、アプリケーションウィンドウ内に表示する複数のブックウィンドウがあります。
Excel2013からはシングルドキュメントインターフェース(SDI)のため、Excelブックを1つ開くとExcelアプリケーションが1つ起動し、アプリケーションウィンドウに表示されます。
Version | Application.WindowState | Window.WindowState |
---|---|---|
Excel2010まで | アプリケーションウィンドウを対象とする | ブックウィンドウを対象とする |
Excel2013から | アプリケーションウィンドウを対象とする | アプリケーションウィンドウを対象とする |
構文
Window.WindowState
Application.WindowState
親オブジェクト | 親オブジェクトとしてWindowオブジェクトかApplicationオブジェクトを指定します。 | ||||||||||||
設定値 | ウィンドウのサイズをXlWindowState列挙型の定数で指定します。
|
アクティブウィンドウを最大化するコード
表示中のアクティブウィンドウのサイズを最大化するコードです。
Excel2013以降はアプリケーションウィンドウが最大化されます。
最小化したい場合はxlMinimizedを指定します。
1 2 3 |
Sub WindowStateTest() ActiveWindow.WindowState = xlMaximized End Sub |
アプリケーションウィンドウを最大化するコード
Excelアプリケーションのウィンドウを最大化するコードです。
1 2 3 |
Sub WindowStateTest2() Application.WindowState = xlMaximized End Sub |
WindowStateプロパティの設定でエラーが起きる場合
WindowStateプロパティがxlNormalの場合にウィンドウサイズの変更を許可するかどうかを指定するEnableResizeプロパティを設定できるようになります。
その際に、EnableResizeプロパティにFalse(ウィンドウサイズ変更不可)を設定するとウィンドウサイズが変更できなくなるため、その状態でWindowStateプロパティを設定すると設定値に関わらずエラーになります。
そのため、以下のようなコードはエラーになります。エラーは13行目のxlMaximizedの設定時に発生します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub WindowStateErrTest() Dim wd As Window Set wd = ActiveWindow '// ウィンドウサイズを標準に設定 wd.WindowState = xlNormal '// ウィンドウサイズの変更不可 wd.EnableResize = False '// ウィンドウサイズを最大化 wd.WindowState = xlMaximized End Sub |
エラーを発生させたくない場合はEnableResizeプロパティにTrue(ウィンドウサイズ変更可)を指定しておいてください。