【Excel VBA】コレクションとメンバの基礎知識まとめ

【Excel VBA】コレクションとメンバの基礎知識まとめ

先日Excelのオブジェクトの基礎知識についてまとめました。

Excelのオブジェクトの基礎知識まとめ | Excelを制する者は人生を制す ~No Excel No Life~

今回はオブジェクトに関連性の深いコレクションとメンバについての基礎知識をまとめていきます。

コレクションとは?

まず、そもそも他のプログラミング上でのコレクションの定義を確認します。

収集(物)、所蔵品、堆積などの意味を持つ英単語。

プログラミングの分野で、データやオブジェクトなどをまとめて格納するためのデータ構造やクラスなどの総称をコレクションということがある。配列やリスト、スタック、キューなどが含まれる。「コンテナ」(container)と呼ばれることもある。

また、プログラミング言語によっては、特定の条件に当てはまる(あるいは、関連する一連の)オブジェクトや値を格納した配列や連想配列のことをコレクションと呼ぶことがある。

参照元:コレクションとは 【 collection 】 - 意味/解説/説明/定義 : IT用語辞典はてなブックマーク _%%TITLE

Excel VBAでのコレクション

Excel VBAでのコレクションは、同じ種類のオブジェクトの集合体のことを表します。

コレクションを操作対象にすることで複数のオブジェクトにまとめて処理することができます。

なお、Excel VBAでの主なコレクションは以下4種類です。(「できる逆引き Excel VBAを極める 勝ちワザ700」を参照)

  • Workbooksコレクション
  • Sheetsコレクション
  • Worksheetsコレクション
  • Chartsコレクション

それでは順番に解説していきます。

Workbooksコレクション

コレクションとメンバ①

開いているすべてのブックの総称です。

Sheetsコレクション

コレクションとメンバ②

ブック内のすべてのシートの総称です。

上図では同一ブック内でワークシート(Sheet○)とグラフシート(Graph○)が混在してますが、「Sheetsコレクション」はシートの種類関係なくすべてを指します。

Worksheetsコレクション

コレクションとメンバ③

ブック内のすべてのワークシート(Sheet○)の総称です。

Chartsコレクション

コレクションとメンバ④

ブック内のすべてのグラフシート(Graph○)の総称です。

メンバとは?

メンバについても、他のプログラミング上での定義について確認します。

構成員、会員、一部分、構成要素、部材、などの意味を持つ英単語。

オブジェクト指向プログラミング(OOP)では、クラスやオブジェクトの持つ変数や関数などの要素をメンバ(「メンバ変数」「メンバ関数」など)ということがある。一般の外来語としては「メンバー」と伸ばして表記するのが一般的だが、多くのIT用語と同じように、この意味で用いる場合には慣習的に「メンバ」と縮めて表記することが多い。

参照元:メンバとは 【 member 】 〔 メンバー 〕 - 意味/解説/説明/定義 : IT用語辞典はてなブックマーク _%%TITLE

Excel VBAでのメンバ

Excel VBAでのメンバは、コレクションの1つ1つのオブジェクトことを指します。

つまり、上記のSheetsコレクションでいくと、Sheet1~6、Graph1・2の計8つの各シートがそれぞれ「メンバ」だと言えます。

まとめ

オブジェクトはVBAの操作対象ですが、具体的なコードを記述するにあたってコレクションとメンバは切っても切り離せない概念です。

オブジェクトとコレクション・メンバの関係性を図でイメージしながら覚えると知識として定着しやすいのでおすすめです。