HOME > エクセルVBA > コンテナコレクション

コンテナ

 エクセルVBAのオブジェクトはすべて同一の並びではなく、親子関係になっております。たとえばエクセルブックとエクセルシートの関係です。ブックが親で、シートが子の関係になります。

 この階層関係の親の事をコンテナといいます。

 コンテナの概念を使用すると、ワークブックやワークシートをアクティブにしなくても必要な操作を行うことが出来ます。下記のプログラムの場合で考えましょう。現在「Book1」がアクティブだとします。ステートメントを書いて実行してみても「Book1」がアクティブなまま何も変化がありません。しかし、Book2.xlsのシート「Sheets1」のセルA1を確認してみると"aaa"の文字が入力されています。

 Workbooks("Book2.xls").Worksheets("Sheets1").Range(A1).Value="aaa"

 コンテナの概念を使用しない場合は下記のステートメントになります。コンテナの概念を使用しないと、オブジェクトをアクティブにしなければならないので処理速度が遅くなります。何度も繰り返すとかなりの時間に差が出ます。(結果は同じである。)

Workbooks("Book2.xls").Activate   ”目的のブックをアクティブにする。
Worksheets("Sheet1").Activate    ”目的のシートをアクティブにする。
Range("A2").Value = "aaa"       ”セルにデータを入力する。

コレクション

 複数のエクセルブックを開いて作業することがあると思います。そして単体のブックだけでなく、同時に操作をしたい場合があります。たとえばブックを閉じるときなどです。

 この様に複数の同一種類のオブジェクトの集合体をコレクションといいます。ブックだけでなく、セルやワークシートも同様に操作することが出来ます。

オブジェクトとプロパティ、メソッド  エクセル職人  ブックの操作

▲TOPへ移動