ExcelVBA 初めてのコンストラクタ
今回はクラスモジュールを作り、フィールド、メソッド、コンストラクタを定義
します。図1のようにクラスモジュール「Class1」を挿入します。
最初にクラスモジュールを挿入するとデフォルトではClass1となります。
また図1のオブジェクト名にある「Class1」という名前を変更する事でクラス名を
変更することができます。
次にクラスモジュールにコンストラクタを挿入します。図2よりエディタに(General)
とあるプルダウンがあります。そこでClassを選択します。
そして図3のように、Classの右側に「Initialize」を選択するプルダウンがあります。
ここで「Initialize」を選択します。これでコンストラクタが挿入されます。
「 Private Sub Class_Initialize() 」となっている部分です。
コンストラクタを定義し、コンストラクタ内に前提条件を記述する事により、
クラスを使用する準備が整います。図4のようにクラスモジュールにコード
を記述します。
図4のクラスモジュールのフィールドにはInteger型の変数a、bを宣言します。そして
コンストラクタに、a=2、b=3 と記述します。これでインスタンス生成
のタイミングで事前条件が設定され、変数a、bに2と3が代入されます。
また値が代入された事を確認するために、getTotalメソッドを定義し、aとbを加算
した値を戻します。
次に標準モジュールでクラスを使用します。図5のようにSampleプロシージャを
記述します。
SampleプロシージャにはClass1型のaddという変数を宣言。そしてNewで
インスタンスを生成しています。この時点で変数a、bには値が代入されています。
最後にMsgBox 関数でClass1に記述したgetTotalメソッドを呼び出しています。
結果は5と表示されます。
今回のようにコンストラクタは、事前条件を設定しクラスの使用準備をする事が
できます。