トップページ

#1_3 コレクション操作


コレクションとは何か

Excelのオブジェクトは「セル」「ワークシート」「グラフシート」「ワークブック」などがあります。

対してコレクションとは、同じ種類のオブジェクトの集合体のことを言います。すべてのセル、すべてのワークブックなどが、それぞれのコレクションです。

例えばすべてのブックを閉じたいと思った時は、ある特定のワークブックではなくワークブックのコレクションであるWorkbooksコレクションに命令をします。

ちなみにCellオブジェクトの集合体はCellsコレクション、Worksheetオブジェクトの集合体はWorksheetsコレクションになります。

コレクションを活用しよう

さて、まずすべてのブックを一度に閉じるマクロを見てみましょう。

次に、一番最初に開いたブックを閉じるマクロを書きますが、以下の2つのうち、下は間違っています。なぜでしょうか?

正しいマクロは「Workbooks」、間違ったマクロは「Workbook」と単数系になっています。ここがVBA最初の関門です。一番最初に開いたブックは1つしか存在しませんので、単数系でも良さそうな気がします。

しかし、Workbooksというキーワードに(1)という番号(インデックス番号)を指定しています。これは数あるWorkbookの集合体の中の1つ目という意味なのです。

VBAの作法として、単体のオブジェクトを指定するためには、そのコレクションにインデックス番号(あるいは名前)を用いて特定する必要があるのです。覚えておきましょう!