Digital_Neko

フリーランスプログラマー

VBA クラスモジュールに処理をまとめよう

今回は、クラスモジュールに必要な処理をまとめて、それを標準モジュールで利用してみましょう。

最初にクラスモジュールCatを作成します。ここにネコに必要な情報とネコの動作を定義します。
今回はネコに必要な情報は、ネコの色、名前。ネコの動作はご飯を食べるとします。
フォルダ構成は図1のようになっています。

図1.フォルダ構成

クラスモジュールCatを定義することで、Catクラスから、白ネコ、黒ネコを生成します。
クラスモジュールの定義は図2のようになっています。(クラスモジュールの名前をCatに変更)

この時点ではフィールドにある、name、colorはpublicになっているので、どこからでもアクセス
できます。つまり情報隠蔽されていません。

図2.ネコの定義情報

この状態で標準モジュールにおいて、黒ネコと白ネコを生成します。標準モジュールのプログラムは
図3のようになっています。

図3.黒ネコ、白ネコを生成

Dim kuroNeko As Cat とすることで、Cat型の変数kuroNekoを用意します。そして、
Set kuroNeko = New Cat として、インスタンスを生成します。これでネコが出来上がります。
しかしまだ、名前と色、ご飯の種類がありません。

そこで、フィールドにあるColorとname、foodに値を設定していきます。図3のプログラムでは
黒ネコ コマが出来上がります。ご飯はサバ缶にしています
(変数名.(ドット)フィールド名で値を設定します)

同様に白ネコ タマ、ご飯はマグロの刺身にします。

最後にクラスにメソッドとして用意した、nekoEat に引数として、foodを渡してあげると、
それぞれのネコがご飯を食べます。

このように、ExcelVBAでもクラスモジュールに処理をまとめることで、カプセル化のような
事ができるようになっています。

ここまで、できたら次回は情報隠蔽をしてみましょう。