Digital_Neko

フリーランスプログラマー

Excel VBA クラスモジュールの利用が便利な理由

Excel-VBAにあるクラスモジュールは、オブジェクトを生み出すために利用します。Excel-VBAでは、オブジェクトを直接定義することができません。そのため、クラスモジュールにクラスを定義し、定義したクラスを利用してオブジェクト(インスタンス)を生成することになります。

クラスモジュールを使うと次のような便利なことがあります。

クラスモジュールに、マクロ内で使う処理を用途ごとにまとめて書いて置けば、何度も同じプログラムを書く必要がなくなります。

例えば、ファイルを処理するクラスを準備するとします。その中には、

(1)「ファイルの情報を取得し、ファイル名とファイルパスを取得する処理」
(2)「ファイルを開く処理や閉じる処理。データの最終行を求める処理」
(3)「印刷をする処理」

(1)~(3)の処理をクラスモジュールにまとめて記述すれば、クラスからオブジェクトを生成するだけで何度も同じ処理を使う事ができます。

クラスからオブジェクト(インスタンス)を生成する例として、ほとんどの参考書では、たい焼きの型を例に上げています。

要するにたい焼きの型に材料を流し込んで、Newするとオブジェクト(インスタンス)の完成です。

そしてクラスを定義すると、クラス型変数を利用する事ができます。オブジェクト(インスタンス)は通常クラス型変数に入れて利用します。

例えば、クラスモジュールのオブジェクト名をPerson(処理の受付係と仮定)にすると、Person型の変数が利用できます。そのためオブジェクト(インスタンス)を生み出すには、次の2段階の記述をします。

Dim myPS as Person・・・・・Person型変数である旨を宣言
Set myPS = New Person・・・インスタンスを生成

Person型の変数を利用する利点として、myPS1、myPS2のように受付係を2人用意する事ができ、それぞれの受付係に命令する事ができます。例えばmyPS1には処理の開始を尋ねてもらう。myPS2には処理の終了を尋ねてもらうなどと役割を分ける事ができます。

このように、クラスモジュールを利用すると、プログラムの記述が楽になります。ぜひ利用してみてください。