オブジェクトとコレクション
VBAでは、処理の対象となるものを指定します。この処理の対象のことを「オブジェクト」といいます。そして同じオブジェクトの集まりを「コレクション」といいます。
オブジェクト
VBAでは、Excelを構成する主な要素を「オブジェクト」として扱います。
主なオブジェクトは
- Excel自体を表す ・・Application【アプリケーション】オブジェクト
- ワークブックを表す・Workbook【ワークブック】オブジェクト
- ワークシートを表す・Worksheet【ワークシート】オブジェクト
- グラフシートを表す・Chart【チャート】オブジェクト
- ウィンドウを表す・・Window【ウィンドウ】オブジェクト
- セルを表す・・・・・Range【レンジ】オブジェクト
などがあります。
上記の主なオブジェクトを含めて290以上のオブジェクトがあります。オブジェクト一覧はこちらをご覧下さい。Excelのオブジェクトは階層構造で管理されています。VBAで処理を行うときに処理対象となるオブジェクトを正しく指定するために階層構造を理解することが重要です。
主なオブジェクトの階層構造図
オブジェクトを参照するには、階層構造にしたがって対象のオブジェクトを指定します。あるオブジェクトからみて1つ上の階層のオブジェクト(親オブジェクト)のことを「コンテナ」と呼びます。例えば
- Range【レンジ】オブジェクトのコンテナは、 Worksheet【ワークシート】オブジェクト
- Worksheet【ワークシート】オブジェクトのコンテナは、Workbook【ワークブック】オブジェクト
- Workbook【ワークブック】オブジェクトのコンテナは、Application【アプリケーション】オブジェクト
のようになります。
コンテナを省略した場合
オブジェクトを参照する場合、オブジェクトの階層構造にしたがって順に参照をしますが、コンテナは省略することができます。例えば、A1セルを参照するときRange(”A1″)と記述しますがこの場合ExcelアプリケーションのアクティブブックのアクティブシートのRange(“A1”)と解釈されます。
コレクション
「コレクション」とは、同じオブジェクトの集まりのことをいいます。また、コレクションに含まれる一つひとつのオブジェクトのことを「メンバー」といいます。
Workbook【ワークブック】オブジェクトの集まりをWorkbooks【ワークブックス】コレクション
Worksheet【ワークシート】オブジェクトの集まりをWorksheets【ワークシーツ】コレクション
というように、コレクションはオブジェクトを複数形で記述したキーワードで指定されます。
「コレクション」の「メンバー」を参照するには
Workbooks(“Book1.xlsx”)
Worksheets(“Sheet1”)
のように「メンバー」を指定します。
主なコレクション
コレクション名 | 内容 |
---|---|
Workbooks【ワークブックス】 | 開いているすべてのブック |
Sheets【シーツ】 | ブック内のすべてのシート |
Worksheets【ワークシーツ】 | ブック内のすべてのワークシート |
Charts【チャーツ】 | ブック内のすべてのグラフシート |
以上で、オブジェクトとコレクションについての解説を終了します。ありがとうございました。