アクティブブックのオブジェクトを取得

広告

ブックのオブジェクトを取得するには、インデックス番号かブック名を指定してWorkbookオブジェクトを取得していましたが、現在アクティブになっているブックのWorkbookオブジェクトを取得するためのプロパティが用意されています。

現在アクティブになっているWorkbookオブジェクトを取得するには、Applicationオブジェクトの「ActiveWorkbook」プロパティから取得します。

Dim book1 As Workbook

Workbooks(1).Activate

Set book1 = Application.ActiveWorkbook

Applicationオブジェクトを省略した場合でも、デフォルトの設定値がApplicationオブジェクトですので記述してもしなくても構いません。

サンプルプログラム

では簡単なサンプルで試してみましょう。

testbook3.bas

Sub テスト()
    
    Workbooks.Open "C:¥excelsample¥2005年成績.xls"
    Workbooks.Open "C:¥excelsample¥2006年成績.xls"

    Workbooks("2005年成績.xls").Activate
    MsgBox ActiveWorkbook.name

End Sub

上記マクロを実行すると次のようになります。

アクティブブックのオブジェクトを取得

今回は「2005年成績.xls」と「2006年成績.xls」という2つのブックを開いた後で、「2005年成績.xls」ブックの方をアクティブに設定しています。そしてアクティブブックのブック名を取得してメッセージボックスで表示しています。

( Written by Tatsuo Ikura )