Window.Activateメソッド

ウィンドウをアクティブにしたい場合はWindowオブジェクトのActivateメソッドを利用します。

この「ウィンドウ」ですが、Excelのバージョンによって考え方が異なります。

Excel2010まではマルチドキュメントインターフェース(MDI)のため、Excel自体のウィンドウであるアプリケーションウィンドウと、アプリケーションウィンドウ内に表示する複数のブックウィンドウがあります。

Excel2013からはシングルドキュメントインターフェース(SDI)のため、Excelブックを1つ開くとExcelアプリケーションが1つ起動し、アプリケーションウィンドウに表示されます。

そのため、ActivateメソッドはExcelのバージョンがExcel2010まではブックウィンドウが対象となり、Excel2013からはアプリケーションウィンドウが対象になります。

Activateメソッドの対象

Excelバージョン 対象ウィンドウ
Excel2010まで ブックウィンドウ
Excel2013から アプリケーションウィンドウ

構文

Windowオブジェクト.Activate
Windows(“ウィンドウ名”).Activate

親オブジェクトとしてWindowオブジェクトを指定します。

Windowsプロパティの引数に参照したいウィンドウ名を指定することでもWindowオブジェクトとして扱うことができます。

ウィンドウ名はExcelタイトルバーに表示されているブックのファイル名になります。

指定したウィンドウをアクティブにする

アクティブにしたいウィンドウは事前に対象のブックが開いていることが前提になります。

開いていないブックのウィンドウをアクティブにしようとしても「実行時エラー ‘9’: インデックスが有効範囲にありません。」のエラーになります。

以下のサンプルは事前にWindowオブジェクトを取得しておき、Activateメソッドを利用する方法と、Windowsプロパティにウィンドウ名を渡したものをWindowオブジェクトとして扱い、Activateメソッドを利用する方法です。

一般的には後者の方を紹介されることが多いと思いますが、どちらを使っても構いません。

事前にWindowオブジェクトを取得しておく方法

Windowsプロパティを使う方法