- Home ›
- Excel VBA入門 ›
- ウィンドウの操作
アクティブウィンドウの整列
ウィンドウの整列を行う時にアクティブウィンドウに対してだけ整列を行うことができます。アクティブウィンドウは通常1つだけですのでアクティブウィンドウだけ整列の対象としても、そのウィンドウが画面いっぱいに表示されるだけですが、ウィンドウを複製している場合で、そのウィンドウがアクティブウィンドウだった場合、複製されたウィンドウなどが整列の対象となります。ここでは
(Last modified: )
アクティブウィンドウを整列する
アクティブウィンドウを整列するにはWindowsコレクションに対して「Arrange」メソッドを使う際に「ActiveWorkbook」引数を「True」に設定します。
Windows.Arrange ArrangeStyle:=xlArrangeStyleTiled, _ ActiveWorkbook:=True
整列の仕方は「ArrangeStyle」引数で指定します。これは通常の場合と同じです。指定可能な値は下記の4つです。
定数 | 整列方法 |
---|---|
xlArrangeStyleCascade | 重ねて表示 |
xlArrangeStyleTilede | 並べて表示 |
xlArrangeStyleHorizontal | 上下に並べて表示 |
xlArrangeStyleVertical | 左右に並べて表示 |
「ActiveWorkbook」引数が「True」の場合だけ、「SyncHorizontal」引数と「SyncVertical」引数の指定が可能です。「SyncHorizontal」引数を「True」に設定すると整列されたウィンドウが横方向のスクロールが同期するようになります。つまりどこかのウィンドウを横にスクロールすると、他のウィンドウも同じように横方向へスクロールします。「SyncVertical」引数に「True」を指定すると縦方向のスクロールが同期します。
Windows.Arrange ArrangeStyle:=xlArrangeStyleTiled, _ ActiveWorkbook:=True, _ SyncHorizontal:=True
サンプルプログラム
では簡単なサンプルで試してみましょう。
下記のように3つのブックを開いた状態から開始します。
Sub テスト() Windows("VBAsample.xls").Activate ActiveWindow.NewWindow Windows.Arrange _ ArrangeStyle:=xlArrangeStyleVertical, _ ActiveWorkbook:=True, _ SyncVertical:=True End Sub
上記マクロを実行すると次のよう表示されます。
今回は元々3つのブックが開いていた状態で、「VBAsample.xls」というブックをアクティブにしてから複製しています。そしてアクティブウィンドウだけを対象に左右に並べて表示させています。全部で4つのブックが開いているわけですが、整列の対象になっているのはアクティブウィンドウとその複製されたウィンドウだけです。
今回は同時に縦方向のスクロールを同期させています。それぞれのウィンドウのタイトルに[垂直同期]と表示されています。
では右側のウィンドウを少し下へスクロールさせてみます。
どちらかのウィンドウを下へスクロールすると、他のウィンドウも同じようにスクロールします。
-- --
Excel VBA でアクティブウィンドウを整列する方法を解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。