アクティブウィンドウの参照
最前面に表示されているWindowオブジェクトであるアクティブウィンドウを参照するにはActiveWindowプロパティを利用します。
Excel2010まではマルチドキュメントインターフェース(MDI)のため、Excel自体のウィンドウであるアプリケーションウィンドウと、アプリケーションウィンドウ内に表示する複数のブックウィンドウがあります。
Excel2013からはシングルドキュメントインターフェース(SDI)のため、Excelブックを1つ開くとExcelアプリケーションが1つ起動し、アプリケーションウィンドウに表示されます。
そのため、アクティブウィンドウの操作は、ExcelのバージョンがExcel2010まではブックウィンドウが対象となり、Excel2013からはアプリケーションウィンドウが対象になります。
構文
Application.ActiveWindow
親オブジェクトとしてApplicationオブジェクトを指定します。省略しても構いません。
サンプルコード
アクティブウィンドウの名前を取得するサンプルです。
1 2 3 4 5 6 7 |
Sub ActiveWindowTest() Dim w As Window Set w = Application.ActiveWindow Debug.Print w.Caption End Sub |
インデックス番号が1はアクティブウィンドウ
Windowsプロパティの引数にインデックス番号1を設定すると、そのWindowオブジェクトが指すのは必ずアクティブウィンドウになります。
そのため、以下のWindows(1)としてWindowオブジェクトを取得するコードも、上のサンプルコードのActiveWindowプロパティを利用した方法と同じ意味の処理になります。
1 2 3 4 5 6 7 |
Sub ActiveWindowTest2() Dim w As Window Set w = Windows(1) Debug.Print w.Caption End Sub |