5-1.Workbookオブジェクト

今回は、ブックを表すWorkbookオブジェクトについて説明します。
ブックに対する処理を行う際は、処理対象にWorkbookオブジェクトを指定します。
また、シートやセルを処理する際に、対象のブックを指定するため、親オブジェクトにWorkbookオブジェクトを指定します。

Workbookオブジェクトの取得

Workbookオブジェクトを取得するプロパティには、Workbooksプロパティ/ActiveWorkbookプロパティ/ThisWorkbookプロパティがあります。

Workbooksプロパティ

○構文
Application.Workbooks(index / name)

○処理
指定したWorkbookオブジェクトを取得します。
親オブジェクトのApplicationは省略できます。

引数に対象ブックのインデックスまたはブック名を指定します。
引数を指定しない場合は、Workbooksコレクションを取得します。

インデックスは、ブックを開いた順に1から付きます。

ActiveWorkbookプロパティ

○構文
Application.ActiveWorkbook

○処理
アクティブなブックを取得します。
親オブジェクトのApplicationは省略できます。

ThisWorkbookプロパティ

○構文
Application.ThisWorkbook

○処理
実行中のVBAが記述されているブックを取得します。
親オブジェクトのApplicationは省略できます。

VBAが記述されているブックとアクティブなブックが同じ場合は、ActiveWorkbookとThisWorkbookは同じブックを取得します。

Workbooksコレクション

コレクションとは、同一のオブジェクトの集合体のことです。
Workbooksコレクションは、Workbookオブジェクトの集まりになります。

開いているブックを数える場合や、ブックを追加する場合などは、処理対象としてWorkbooksコレクションを指定します。

WorkbooksコレクションとWorkbookオブジェクトの関係

ブックの選択

ブックを選択する場合は、Activateメソッドを使用します。
シートやセルの選択と違い、ブックにはSelectメソッドはありません。

Activateメソッド

○構文
Workbook.Activate

○処理
指定したWorkbookをアクティブにします。
指定したWorkbookが開いてない場合は、エラーとなります。

サンプルコード

Sub サンプルコード()
    
    'ブックを選択する
    Workbooks("ブック名").Activate
    
    '開いているブック数を数える
    MsgBox Workbooks.Count
    
    '最後に開いたブックを選択する
    Workbooks(Workbooks.Count).Activate
    
End Sub

コメント