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列挙型の定数で指定します。

定数 内容
xlMaximized -4137 最大化
xlMinimized -4140 最小化
xlNormal -4143 標準サイズ

 

アクティブウィンドウを最大化するコード

表示中のアクティブウィンドウのサイズを最大化するコードです。

Excel2013以降はアプリケーションウィンドウが最大化されます。

最小化したい場合はxlMinimizedを指定します。

 

アプリケーションウィンドウを最大化するコード

Excelアプリケーションのウィンドウを最大化するコードです。

 

WindowStateプロパティの設定でエラーが起きる場合

WindowStateプロパティがxlNormalの場合にウィンドウサイズの変更を許可するかどうかを指定するEnableResizeプロパティを設定できるようになります。

その際に、EnableResizeプロパティにFalse(ウィンドウサイズ変更不可)を設定するとウィンドウサイズが変更できなくなるため、その状態でWindowStateプロパティを設定すると設定値に関わらずエラーになります。

そのため、以下のようなコードはエラーになります。エラーは13行目のxlMaximizedの設定時に発生します。

エラーを発生させたくない場合はEnableResizeプロパティにTrue(ウィンドウサイズ変更可)を指定しておいてください。