プロが教える店舗&オフィスのセキュリティ対策術

VBAのコレクションオブジェクトについての質問です。

一般的な説明では、
・コレクション(Collection)とは、同じ種類のオブジェクトの集合体をいいます。
となっているのですが、


 以下のような自分で作成するコレクションオブジェクトもあるみたいです。
この場合、同じ種類ではないオブジェクトでコレクションを作れるのでしょうか?それともこの場合も、同じ種類のオブジェクトでないといけないのでしょうか?

・Collectionオブジェクトを使うと、文字列、数値、オブジェクトを要素とする独自のオブジェクトを作成できます。
  Dim colTest As New Collection 

A 回答 (1件)

 Excel VBAで説明すると、



 Excel.WorkBookクラスのWorkSheetsプロパティに設定されているオブジェクトがExcel.WorkSheetオブジェクトのコレクションオブジェクトとなるね。この場合、「コレクション」という言葉は一般的な「集まり(コレクション)」という意味だ。
 この時、WorkSheetsプロパティの実体はExcel.WorkSheetsクラスのインスタンスであり、WorkSheetsクラスはWorkSheetクラスのオブジェクトの集合を保持している。WorkSheetsクラスのソースが無いので分からないが内部ではCollectionクラスで管理しているのかもしれない。

 これに対し、
 Dim colTest As New Collection
 はCollectionというクラスのインスタンスを作成しているのであり、コレクションはCollectionクラスを指している。このCollectionクラスはAddやRemoveなどのメソッドを持っており、引数がObjectなので文字列も数値も何らかのオブジェクトも要素とできる。基本はこいつを内包したクラス(AddやRemoveを特定のクラスを引数にして用意する)を作成する事になる。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありませんでした。おかげさまで理解する事ができました。
有難うございます。

お礼日時:2010/02/06 10:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!