朝会発表テーマ

VBAのクラスモジュールについて

レジュメ

1.クラスモジュールとは

VBAではプログラムコードの種類として、プロシージャや標準モジュールの他に選択できる形式。 VBAのコードエディタの画面で、(メニュー) – [クラスモジュール(C)]とクリックすることで クラスモジュールを作成することができる。

Excelの場合
Accessの場合

2.クラスモジュールのメリット

・ (いわゆるオブジェクト指向の)オブジェクトとして処理をまとめる(=カプセル化)ことができ、 VBAのプログラムコードの可読性を上げることができる。

3.クラスモジュールでできないこと

・ コンストラクタで引数を指定することができない → 変動する値で初期化を行いたい場合は、別途SetXxx()といったメソッドを自分で用意する必要がある。 ・ オーバーロードや継承ができない → 引数の型の違う同じ名前のメソッドを作成したり、 予め用意しておいたクラスから継承し差分のみコーディングを行う、といったことができない。

4.まとめ

・ C#やJavaのようなクラスと比べると機能は貧弱 ・ 長くなりがちなVBAのソースコードを整理するのに役立つ

補足資料

サンプルプログラム

・Excel VBAで作成
・下記プログラムを作成、実行すると、「Hello, Suzuki!」と「公開変数」というメッセージボックスが表示される。

プログラム作成方法

Sheet1を選択して、次のコードを追記して保存
HelloClassクラスモジュールを作成し、次のコードを追記して保存

実行方法

「マクロ」ウィンドウから「main」とあるものを選択して右上の「実行」ボタンを押す

実行結果

「Hello, Suzuki!」とメッセージボックスが表示された後、
「公開変数」というメッセージボックスが表示される。

コメント