EXCEL VBA 表示画面のコントロール③(ウインドウのコピーを同期、並べて表示・表示画面サイズを取得・設定)

 

 

EXCEL VBA 表示画面のコントロール③(ウインドウのコピーを同期、並べて表示・表示画面のサイズを取得・表示画面サイズを設定)

 

 

 ●はじめに

今回説明するのは、表示画面のコントール③(ブックの整列・ウインドウのコピーを同期、EXCELブックを並べて表示、EXCEL画面のサイズ取得やEXCEL表示画面のサイズを設定する方法を説明いたします。EXCELでデータを入力したり、データをチェックする際には、この機能を使う事で効率よくデータチェックなどを行う事が出来ます。それでは、サンプルプログラムを交えて順番に説明いたします。

 

●【EXCEL VBA 表示画面のコントロール①(アクティブウィンドウの参照、表示画面の拡大縮小:ActiveWindow/Zoom)については、下記を参照して下さい】

EXCEL VBA 表示画面のコントロール①(アクティブウィンドウの参照、表示画面の拡大縮小:ActiveWindow/Zoom)

 

●【EXCEL VBA 表示画面のコントロール②(ウインドウの制御、最大化・最小化・スクロール表示画面のサイズ設定)については、下記を参照して下さい】

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

 

 

 

 

 ●書式の説明 (ウィンドウのコピーを開く)

● NewWindowメゾットを利用するには、下記の通りに設定を行います。

オブジェクト.NewWindow

【使用例】
★ファイル名又はウィンドウ名を指定します。

① Windows(“Book1.xlsx”).NewWindow
② Windows(“Book1”).NewWindow

【注意点】
・開いていないWindowオフジェクトやWorkBookオブジェクトを指定するとエラーが発生します。

 

 

 

 

EXCEL VBA ウインドウのコピーを開く(上下に表示・左右に表示)コピーした画面を縦方向・横方向に同期します。

 

 

 

 ●プログラム説明 (サンプル①)

下記のサンプルプログラムは、EXCELウインドウのコピーを開いて、コピーを上下又は左右に表示して、コピーした画面は、指定した方向に同期する事の出来るサンプルプログラムです。同じEXCELブックでデータを参照しながらデータを入力する際は、とても便利だと思います。

【下記のサンプルプログラムについて】
① 【WindowCopy00】は、コピーされるウインドウは、上下に表示されます。スクロール同期は、縦方向に同期します。
② 【WindowCopy01】は、コピーされるウインドウは、左右に表示されます。スクロール同期は、横方向に同期します。

 

 

 

 

●実行前~実行後 ※プログラム実行後、アクティブブックのウインドウがコピーされて、上下に表示されました。実際に上記プログラムを実行して同期の状況や実際にデータを入力する事で、この機能が分かりやすく理解できます。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA エクセルウインドウのサイズを取得する。

 

 

 

 ●書式の説明 (ウィンドウのサイズを取得する・縦横サイズを指定する。)

● UsableWidthプロパティ・UsableHeightプロパティを利用するには、下記の通りに設定を行います。

・オブジェクト.UsableWidth     ・・・幅のサイズを取得・設定
・オブジェクト.UsableHeight    ・・・高さのサイズを取得・設定

【使用例】
Dim  Ans_Width as Double
With Windows(“ウィンドウサイズ.xlsm”) ‘★ファイル名又はウィンドウ名を指定します。
Ans_Width = Application.UsableWidth ‘幅のサイズを取得します。
End With

【注意点】
・サイズを取得する変数は、Doubleを指定します。(小数点付きの数値を格納するため)

 

 

 ●プログラム説明 (サンプル②)

下記のサンプルプログラムは、EXCELのウインドウサイズを取得するサンプルプログラムです。実際にウィンドウのサイズを取得するには、幅は、UsableWidthプロパティを利用します。高さについては、UsableHeightプロパティを利用します。取得するサイズを格納するために、必ず変数は小数点が格納できるDoubleを指定します。

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、指定したウインドウ名のウインドウサイズを取得して、メッセージボックスで表示されました。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA エクセルウィンドウのサイズを指定する・ウインドウサイズを変更する。

 

 

 ●プログラム説明 (サンプル3)

下記のサンプルプログラムは、EXCELのウインドウサイズ(大きさ・変更)を設定するサンプルプログラムです。実際に指定する数値を指定して設定する方法もありますが、下記のプログラムでは、現在表示しているサイズに対して①幅のサイズを約1/3に変更する方法と②縦のサイズを約1/2にする方法を説明いたします。

 

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、EXCEL画面の元の大きさより1/3の大きさに変更されました。
下記の実行結果は、上記プログラムの【UsableWith02】を実行しています。
(画面クリックして拡大)

 

 

 

EXCEL VBA エクセルのウィンドウの上下に表示・左右に表示・重ねて表示(ブックの整列・ウインドウを整列する)

 

 

 ●書式の説明 (ウインドウを整列する/ブックの整列:Arrangeメゾット)

● Arrangeメゾットを利用するには、下記の通りに設定を行います。

・オブジェクト.Arrange(ArrangeStyle,ActiveBook,SyncHorizontal,SyncVertical)


設定項目必須・オプションデータ型説明
ArrangeStyle省略可能XlArrangeStyleウィンドウの並べ替え方法を XlArrangeStyle クラスの定数のいずれかで指定する。(下表参照)※省略は場合は並べて表示が設定されます。
ActiveWorkbook省略可能VariantActiveWindowを整列する場合はTrueに設定。開いているウインドウの全てを整列する場合は、Falseを設定します。省略は、Falseが設定されます。
SyncHorizontal省略可能Variant整列したウインドウの横スクロールを同期させる時は、Trueにします。省略は、Falseが設定され何もしません。
SyncVertical省略可能Variant整列したウインドウの縦スクロールを同期させる時は、Trueにします。省略は、Falseが設定され何もしません。

 

定数内容(説明)
xlArrangeStyleTiled並べて表示
xlArrangeStyleHorizontal上下に並べて表示
xlArrangeStyleVertical左右に並べて表示
xlArrangeStyleCascade重ねて表示

 

【使用例】

Application.Windows.Arrange ArrangeStyle:=xlArrangeStyleHorizontal

●ウインドウ・ブックを並べて表示する(上下に表示)

【注意点】

●ウインドウ・ブックを整列するには、最小化表示にしていると整列されませんので、事前に標準表示か最大化表示にする必要があります。

 

Arrangeメゾットについては、下記を参照して下さい】:参考(Microsoft社 様)
https://docs.microsoft.com/ja-jp/office/vba/api/excel.windows.arrange

 

 

 

 ●プログラム説明 (サンプル④)

下記のサンプルプログラムは、EXCELのウインドウを並べて表示するArrangeメゾットの使用方法を説明いたします。下記のプログラムでは、3種類の並べて表示する方法を説明いたします。
① ウインドウ・ブックを上下に並べて表示

② ウインドウ・ブックを左右に並べて表示

③ ウインドウ・ブックを重ねて表示

 

 

 

 

 

 

 

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