EXCEL VBA 表示画面のコントロール②(ウインドウの制御、最大化・最小化・スクロール表示画面のサイズ設定)

 

EXCEL VBA 表示画面のコントロール②(ウインドウの制御、最大化・最小化・スクロール表示画面のサイズ設定)

 

 

 ●はじめに

EXCEL等で、表などを作成した時に表をユーザーに見やすくするためEXCELの画面表示をコントロールすると思います。画面表示を最大化・標準・最小化し画面サイズを調整するには、「WindowState」を利用して表現したり、見せたい内容を縦・横スクロールさせて見やすい位置調整する「ScrollRow・Column」を利用して調整する事ができます。それでは、画面表示のコントロール機能を順番に説明いたします。

★EXCEL VBA 表示画面のコントロール①の内容は下記参照
https://akira55.com/windowzoom/

 

 ●書式の説明 「WindowState プロパティ」
【ウインドウを最大化/通常/最小化】
オブジェクト.WindowState = 設定値
定数(設定値)内容(説明)
xlMinimized最小化-4140
xlMaximized最大化-4137
xlNormal標準-4143
【アクティブウインドウの大きさの変更】

使用例①: ActiveWindow.WindowState = xlMinimized ’最小化
使用例②:  ActiveWindow.WindowState = xlMaximized   ‘最大化
使用例③:  ActiveWindow.WindowState = xlNormal ‘標準【アクティブウインドウの大きさの取得】使用例:WinSize = ActiveWindow.WindowState

 

 

現在のウインドウサイズの取得(最大化・標準・縮小化)WindowState

 

 

 ●プログラム説明(サンプルプログラム①)WindowState
下記のサンプルプログラムは、現在のEXCELブックで開いているウインドウのサイズをメッセージボックスに表示させるプログラムです。

 

 

 

 

●実行前~実行後 ※プログラムの実行後、現在のウインドウの大きさを取得して該当するサイズの大きさをメッセージボックスで表示します。
(画面クリックして拡大)

 

 

 ●プログラム説明(サンプルプログラム②)WindowState
下記のサンプルプログラムは、現在のEXCELブックで開いているウインドウのサイズを変更するプログラムです。実行するたびに、最大化⇒標準⇒最小化⇒最大化・・と繰り返します。

 

 

 

●実行前~実行後 ※プログラムの実行後、現在のウインドウの大きさを取得して画面の表示サイズを「最大化⇒標準⇒最小化」の順場に実行するたびに繰り返します。

 

 

 ●書式の説明 「ScrollRow・ScrollColumn プロパティ」

【EXCELの画面上、指定する位置へスクロールします】

オブジェクト.ScrollRow = 設定値 (行を指定します)
オブジェクト.ScrollColumn = 設定値(列を指定します)

使用例①: ActiveWindow.ScrollRow = 10 ’10行スクロール(縦スクロール)
使用例②:  ActiveWindow.ScrollColumn = 5 ’5列スクロール(横スクロール)

 

 

EXCELの表示画面をスクロールして表示指定

 

 ●プログラム説明(サンプルプログラム①):ActiveWindow.ScrollRow・Column
下記のサンプルプログラムは、指定したセル位置にスクロールするプログラムです。今回指定して番号は、縦10・横5分・スクロール移動します。

 

 

 

 ●実行前~実行後 ※プログラム実行後、10行分縦スクロール・5列分横スクロールしました。
(画面クリックして拡大)

 

 

 ●プログラム説明(サンプルプログラム②):ActiveWindow.ScrollRow・Column

下記のサンプルプログラムは、1シートに各月の売上高表があります。入力値(月)に対して該当する売上表を左上にスクロールします。

 

 

 

●実行前~実行後 ※プログラム実行後、INPUTBOXが表示されるので、左上にスクロールさせたい月を入力します。(今回は、4:=4月) 入力後、該当する月の売上表(4月)が左上にスクロールしました。
(画面クリックして拡大)

 

 

ウインドウの位置やサイズの位置を指定する

 

 

 ●書式の説明
【ウインドウ位置を設定】
オフジェクト.Top = 設定値(数値)
オフジェクト.Left = 設定値(数値)
オフジェクト.Height = 設定値(数値)
オフジェクト.Width = 設定値(数値)使用例①: ActiveWindow.Top = 50  (画面上からのサイズを50に設定)

 

 

●実行前~実行後 ※プログラム実行後、数値で指定したTop/Left/Height/Widthの設定通りに画面サイズが変更されました。
(画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。