サイトについて      連絡先   検索

VBA Workbook [ワークブック] を取得する

はじめに

Excel VBA マクロの Workbook (ワークブック) を取得する方法を紹介します。

Workbooks プロパティから Workbook を取得できます。

Workbook (ワークブック) を取得する

ワークブック名で取得

Workbooks の引数に名前を指定すると、その Workbook を取得できます。

「Book1.xlsx」の Workbook を取得するには Workbooks("Book1.xls") のように指定します。


Dim wb As Workbook
Set wb = Workbooks("Book1.xlsx") '「Book1.xlsx」の Workbook を取得
Set wb = Workbooks("Book2.xls")  '「Book2.xls」の Workbook を取得
Debug.Print(wb.Name)

指定した Workbook が存在しないときはエラーが発生します。

Workbooks の引数にインデックスを指定しても Workbook を取得できます。

インデックスだと何の Workbook なのかわかりずらいため、ワークブック名で取得するのをオススメします。


Dim wb As Workbook
Set wb = Workbooks(1) ' 1 番目のシートを Workbook を取得
Set wb = Workbooks(2) ' 2 番目のシートを Workbook を取得
Debug.Print(wb.Name)

アクティブな Workbook を取得

アクティブな Workbook を取得するには ActiveWorkbook のように指定します。


Dim wb As Workbook
Set wb = ActiveWorkbook
Debug.Print(wb.Name)

マクロを実行している Workbook を取得

マクロを実行している Workbook を取得するには ThisWorkbook のように指定します。


Dim wb As Workbook
Set wb = ThisWorkbook
Debug.Print(wb.Name)