Excel VBA コンストラクタ
今回は、クラスモジュールにおけるコンストラクタの記述方法について書いていきます。
コンストラクタとは、クラスモジュールに記述し、インスタンス生成のタイミングでフィールドに初期値を与えるものです。早速、図1のようにクラスモジュールをプロジェクトに挿入し、オブジェクト名を「Person」に変更します。
![](https://nekoni-gohan.com/wp-content/uploads/2020/11/3f6e0d74935da30e06c73b4b1f84c3cb.png)
そして、図2のようにクラスモジュールにプログラムを記述します。Private Sub Class_Initializeとなっているところがコンストラクタになっています。クラスモジュールにはプロパティプロシージャを記述しました。
![](https://nekoni-gohan.com/wp-content/uploads/2020/11/6d3ab2468f8789a20ff3ac7c43f6bd26.png)
次に図3のように標準モジュールを挿入し、インスタンスを生成します。そしてプロパティに何も設定しない状態で、プロパティの値をメッセージボックス関数で表示するようにします。
![](https://nekoni-gohan.com/wp-content/uploads/2020/11/584bc9f2e881677fa40d855de41d30d1.png)
そうすると、今回のプログラムでは、Set myPS = New Person が実行された時点で、コンストラクタによりクラスモジュールにあるプロパティに「スライム」が設定されます。その為、標準モジュールでプロパティの値を設定しなくても、メッセージボックス関数で「スライム」と表示されます。
このように、コンストラクタを用いると、インスタンス生成のタイミングで初期値を与える事ができるので、インスタンスに共通の初期値がある場合に設定しておく事ができます(初期値がない場合は通常空文字、もしくはオブジェクトの場合はNothingを設定します)。
ちなみに、ステップ実行をすると、どのようにプログラムが進んで行くかが順を追って分かりますのでぜひやってみてください。