VBA ワークブックをアクティブにする

はじめに

Excel VBA マクロでワークブックをアクティブにする方法を紹介します。

Workbook.Activate メソッドから、ブックをアクティブにできます。

ActiveWorkbook オブジェクトから、アクティブブックを取得できます。

ThisWorkbook オブジェクトから、VBA を実行しているブックをアクティブにできます。

ブックを指定して取得するには「ワークブックを取得する」をご覧ください。
  • 目次
    • ブックをアクティブにする
    • アクティブブックを取得

ブックをアクティブにする

ブック名でアクティブ

Workbooks の引数に名前を指定すると、そのブックをアクティブにできます。

ブック「Book1.xlsx」のブックをアクティブにするには Workbooks("Book1.xlsx").Activate を入力します。

Workbooks("Book1.xlsx").Activate ' ブック「Book1.xlsx」をアクティブ

アクティブにすると手前に表示されます。

インデックスでアクティブ

Workbooks の引数にインデックスを指定すると、そのブックをアクティブにできます。

1 番目のブックをアクティブにするには Workbooks(1).Activate を入力します。

Dim wb As Workbook
Set wb = Workbooks(1).Activate ' 1 番目のブックをアクティブ
Set wb = Workbooks(2).Activate ' 2 番目のブックをアクティブ
Debug.Print(wb.Name)

インデックスは、ブックを開いた順番に 1 からスタートします。

VBA を実行しているブックをアクティブ

VBA を実行しているブックをアクティブにするには ThisWorkbook.Activate を入力します。

ThisWorkbook.Activate

シートからアクティブ

シートをアクティブにすると、そのシートがあるブックもアクティブになります。

ブック「Book2.xlsx」のシートをアクティブにするには Workbooks("Book2.xlsx").Sheets(1).Activate のように入力します。

Dim wb As Workbook
Set wb = Workbooks("Book2.xlsx")

wb.Sheets(1).Activate            ' そのブックと 1 番左のシートをアクティブ
wb.Worksheets("Sheet1").Activate ' そのブックとシート「Sheet1」をアクティブ
シートをアクティブにするには「シートを選択またはアクティブにする」をご覧ください。

アクティブブックを取得

アクティブブックを取得するには ActiveWorkbook を入力します。

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

アクティブブックとは、開いているすべてのブックの中で一番手前に表示されているブックです。