ActivateNext、ActivatePreviousメソッド
Excelのウィンドウには開いた順番に1から始まるインデックス番号が付けられています。
このときインデックス番号が1のウィンドウがアクティブウィンドウになります。
ActivateNextメソッドとActivatePreviousメソッドを実行すると後述するルールに従ってウィンドウの並べ直しが行われます。
それぞれのメソッド実行後は並べ直しが終わったあとの状態で表示されます。
構文
Window.ActivateNext
Window.ActivatePrevious
親オブジェクト | Windowオブジェクトを指定します。
通常はActiveWindowプロパティかWindowsオブジェクトにインデックス番号を指定して設定します。 |
並べ直しのルール
ActivateNextメソッドとActivePreviousメソッドの並べ替えは、先頭が最後に行って、最後が先頭に行って、というような単純なインデックス番号がくるくる回るようなルールになっていません。
親オブジェクトで指定するウィンドウのインデックス番号に並べ替えは依存し、ActivateNextメソッドとActivePreviousメソッドでルールが異なります。
以下の例はPersonal.xlsbを含めて8つのウィンドウがある場合に、Windowsオブジェクトの先頭、3番目、最後の8番目に対してActivateNextメソッドとActivatePreviousメソッドを実行した場合のインデックス番号の変化になります。
ActivateNextメソッドの並べ直しルール
親オブジェクトとして指定したウィンドウのインデックス番号が一番最後に移動します。
Windowsオブジェクトのインデックス番号に1(先頭)を指定した場合
Windowsオブジェクトのインデックス番号に3(途中)を指定した場合
Windowsオブジェクトのインデックス番号に8(最後)を指定した場合
ActivatePreviousメソッドの並べ直しルール
インデックス番号が一番最後のウィンドウが先頭に移動し、親オブジェクトとして指定したウィンドウのインデックス番号が2番目に移動します。
Windowsオブジェクトのインデックス番号に1(先頭)を指定した場合
Windowsオブジェクトのインデックス番号に3(途中)を指定した場合
Windowsオブジェクトのインデックス番号に8(最後)を指定した場合
ActivateNextサンプルコード
アクティブウィンドウに対してActivateNextメソッドを実行するコードです。
実行するとアクティブウィンドウのインデックス番号が一番最後の移動します。
1 2 3 |
Sub ActivateNextTest() ActiveWindow.ActivateNext End Sub |
ActivatePreviousサンプルコード
インデックス番号が2番目のウィンドウに対してActivatePreviousメソッドを実行するコードです。
実行するとインデックス番号が一番最後のウィンドウが先頭に移動します。
1 2 3 4 5 6 7 |
Sub ActivatePreviousTest() Dim wd As Windows Set wd = Windows wb(2).ActivatePrevious End Sub |