VBA クラスモジュールに処理をまとめよう
今回は、クラスモジュールに必要な処理をまとめて、それを標準モジュールで利用してみましょう。
最初にクラスモジュールCatを作成します。ここにネコに必要な情報とネコの動作を定義します。
今回はネコに必要な情報は、ネコの色、名前。ネコの動作はご飯を食べるとします。
フォルダ構成は図1のようになっています。
クラスモジュールCatを定義することで、Catクラスから、白ネコ、黒ネコを生成します。
クラスモジュールの定義は図2のようになっています。(クラスモジュールの名前をCatに変更)
この時点ではフィールドにある、name、colorはpublicになっているので、どこからでもアクセス
できます。つまり情報隠蔽されていません。
この状態で標準モジュールにおいて、黒ネコと白ネコを生成します。標準モジュールのプログラムは
図3のようになっています。
Dim kuroNeko As Cat とすることで、Cat型の変数kuroNekoを用意します。そして、
Set kuroNeko = New Cat として、インスタンスを生成します。これでネコが出来上がります。
しかしまだ、名前と色、ご飯の種類がありません。
そこで、フィールドにあるColorとname、foodに値を設定していきます。図3のプログラムでは
黒ネコ コマが出来上がります。ご飯はサバ缶にしています
(変数名.(ドット)フィールド名で値を設定します)
同様に白ネコ タマ、ご飯はマグロの刺身にします。
最後にクラスにメソッドとして用意した、nekoEat に引数として、foodを渡してあげると、
それぞれのネコがご飯を食べます。
このように、ExcelVBAでもクラスモジュールに処理をまとめることで、カプセル化のような
事ができるようになっています。
ここまで、できたら次回は情報隠蔽をしてみましょう。