- Home ›
- Excel VBA入門 ›
- ウィンドウの参照 ›
- HERE
Windowオブジェクトの取得
まずウィンドウそのものを確認しておきます。Excel上で複数のブックを開いた状態で、「ウィンドウ」メニューの「整列」をクリックして下さい。
すると次のように「ウィンドウの整列」というウィンドウが表示されます。
「重ねて表示」を選択してから「OK」ボタンをクリックして下さい。
このようにExcel自体のウィンドウの中に、1つ1つのブックはそれぞれ別のウィンドウの中に存在しています。
Windowオブジェクトの取得
開いている全てのウィンドウはWindowsコレクションに含まれています。1つ1つのウィンドウを表すWindowオブジェクトはApplicationオブジェクトの「Windows」プロパティで取得します。
Dim window1 As Window Set window1 = Application.Windows(インデックス番号)
Applicationオブジェクトを省略した場合にも、デフォルトの値としてApplicationオブジェクトが設定されているので記述してもしなくても構いません。
取得したいウィンドウを指定するにはインデックス番号で指定するかウィンドウ名で指定します。注意する点としてインデックス番号はアクティブなウィンドウが常に「1」になるためインデックス番号は常に変化します。その為、ウィンドウ名で指定したほうがいいでしょう。
ウィンドウ名とはウィンドウのタイトルの部分に表示されている文字列です。(下記の赤丸の部分です)。
通常ウィンドウ名にはブック名が表示されていますが、ブック名とは別に設定することもできます。ウィンドウ名を使う場合には次のようになります。
Dim window1 As Window Set window1 = Application.Windows("VBAsample.xls")
サンプルプログラム
では簡単なサンプルで試してみましょう。3つのブックを開いておきます。
この中から「2005年成績.xls」というウィンドウ名を持つWindowオブジェクトを取得しウィンドウのタイトルを取得します。
Sub テスト() Dim window1 As Window Set window1 = Application.Windows("2005年成績.xls") MsgBox window1.Caption End Sub
上記マクロを実行すると次のようになります。
( Written by Tatsuo Ikura )