• 締切済み

VBAもしくはVB6:クラスの中でクラスは使える?

EXCEL2010にて、VBAでプログラミングしております。 クラスモジュールを用いてクラスを自分で作成して、 作成したクラスを標準モジュール内で使用するのは普通ですが、 クラスモジュールを用いてクラスを自分で作成して、 作成したクラスを、更に別のクラスモジュールの中に記述することは可能ですか? このようなクラスの中に別のクラスが入っている状態(クラスの入れ子)で、 まともに動くものでしょうか? 詳しい方、御教授よろしくお願いいたします。

みんなの回答

回答No.1

動きます。 標準モジュール内で標準モジュールを利用することも可能ですし、 クラスは標準モジュール内で利用することが当たり前や前提ということはありません。 但し、標準モジュールと違うところは、クラスが一旦破棄されれば、クラス内で利用している クラスも操作できなくなるという点です。 (デストラクタで内部のクラスは解放すべきだし、改めてインスタンス化するなどの必要が出てくる) それだと困るなら、内部で利用するものは、スタティックなクラスとして作るなど、考えが 必要です。(いわゆるシングルトンな設計でクラスを作るなど)

tsumuji
質問者

お礼

早速の御回答、 どうも有り難うございます。 >>但し、標準モジュールと違うところは、クラスが一旦破棄されれば・・・ 以降のくだりは、 今の私の知識(技量?)では、少々難しく すぐに理解は出来ないのですが、 情報収集して 勉強してみようと思います。