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