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

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

(Last modified: )

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

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

Dim book1 As Workbook

Workbooks(1).Activate

Set book1 = Application.ActiveWorkbook

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

サンプルプログラム

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

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」ブックの方をアクティブに設定しています。そしてアクティブブックのブック名を取得してメッセージボックスで表示しています。

-- --

Excel VBA でアクティブブックのオブジェクトを取得する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。