こんにちは。
今日は、VBAのクラスモジュールについて!
その中でもコンストラクタ/デストラクタの意味、使い方などを備忘録していきまーす。
■ 動作環境
OS: Windows 8.1
Excel: 2013
■ コンストラクタ
クラスをインスタンス化したタイミングで実行されるプログラムを「コンストラクタ」と呼んでいます。ExcelのVBAでは、「Initialize」イベントにコードを記載することでコンストラクタとして処理されます。
メンバー変数の初期化、クラスの中で使用するインスタンス作成などクラスの様々な動作に対しての事前準備をするのに便利です。
■ デストラクタ
クラスのインスタンスが破棄されたタイミングで実行されるプログラムを「デストラクタ」と呼んでいます。ExcelのVBAでは、「Terminate」イベントにコードを記載することでデストラクタとして処理されます。
クラスの中で使用したファイルやオブジェクトを開放するなどの後処理をするのに便利です。
■ 動作イメージ
サンプルコードを作って動かしてみました♪
□ クラスモジュールのサンプルコード
それぞれのイベントでデバックメッセージを表示
コンストラクタでは、メンバー変数「isEnabled」を有効化
□ クラスを活用するサンプルコード
□ 動作結果
こんな感じです。^^
コンストラクタ: オブジェクト変数を定義しただけでは発生せず、Newすることで発生
デストラクタ: オブジェクト変数へNothingを設定することで発生
■ まとめ
いかがでしたでしょうか?
最後に一点注意事項を!コンストラクタ/デストラクタのイベントモジュールは引数を受け取ることができません。よって、何等かの要素や値を必要とする事前準備/事後処理はできませんのでご注意ください。
次回以降も、苦労した点を備忘録しようと思います。
Comments