こんにちは、Ryoです。
ブックを複数開いている状態で上下や左右に並べたり、重ねて表示したい時はArrangeメソッドを利用することで開かれているすべてのウィンドウを指定した形に整列させることができますので、今回はその内容について書いていきたいと思います。
1.サンプル概要
実行元ファイルの他に2つのブックを開き、計3つのブックに対して処理を行います。
◆上下に並べて表示
◆重ねて表示
◆並べて表示
◆左右に並べて表示
以上がサンプル概要になります。
2.サンプルコード
Sub Sample1() '実行元ファイルを含めた合計3ファイルを '指定した形で整列する Workbooks.Open ThisWorkbook.Path & _ "\Arrange_Sample1.xlsx" Workbooks.Open ThisWorkbook.Path & _ "\Arrange_Sample2.xlsx" '定数:xlArrangeStyleHorizontal ' →上下に並べて表示 Windows.Arrange xlArrangeStyleHorizontal '定数:xlArrangeStyleCascade ' →重ねて表示 'Windows.Arrange xlArrangeStyleCascade '定数:xlArrangeStyleTiled ' →並べて表示 'Windows.Arrange xlArrangeStyleTiled '定数:xlArrangeStyleVertical ' →左右に並べて表示 'Windows.Arrange xlArrangeStyleVertical End Sub
サンプルコードは実行元ファイルと同じ場所に保存された2つのファイル(Arrange_Sample1.xlsx/Arrange_Sample2.xlsx)を開き、Arrangeメソッドを利用してそれぞれ指定した形で整列するものです。
構文:オブジェクト.Arrange(ArrangeStyle,ActiveWorkbook,SyncHorizontal,SyncVertical)
このArrangeメソッドは開かれているすべてのウィンドウを整列させるものなので、最小化されているウィンドウは対象外です。
引数ArrangeStyleに整列方法を指定する定数は以下の通りです。
定数 | 内容 |
xlArrangeStyleHorizontal | 上下に並べて表示(既定) |
xlArrangeStyleCascade | 重ねて表示 |
xlArrangeStyleTiled | 並べて表示 |
xlArrangeStyleVertical | 左右に並べて表示 |
本サンプルでは使用していませんが引数ActiveWorkbookはTrueでアクティブブックのみ対象とすることができ、引数SyncHorizontal/SyncVerticalはTrueとすることで横方向(Horizontal)・縦方向(Vertical)のスクロールを同期するものです。
以上がサンプルコードになります。
3.まとめ
集計処理などの結果を出力した際に他ブックなどを合わせて表示したいようなケースであれば指定した形でウィンドウを整列できますので役に立つこともあるかと思います。
このようなウィンドウ操作は扱うことも多いと思いますので利用機会があればご活用をご検討くださいませ。
以上、複数のウィンドウを整列する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo