今回は、Excel VBAでクラスモジュールを使った簡単なプログラムを作成します。
Excel VBA のクラスモジュールは、オブジェクト指向プログラミングを行うことができます。
オブジェクト指向とは、プログラミングの考え方の一つで、「現実世界のモノ(オブジェクト)」をモデル化してプログラムを作る手法です。
オブジェクト指向のキーワードとして、「オブジェクト」、「クラス」、「インスタンス」、「プロパティ」、「メソッド」があげられます。
オブジェクト・・・ プログラムの中で表現されるモノ。例えば、「人」というオブジェクトは、名前、年齢、性別などの属性と、話す、歩くなどの動作を持ちます。
クラス・・・オブジェクトの設計図。クラスに基づいて、具体的なオブジェクト(インスタンス)を作成します。
インスタンス・・・クラスから生成された具体的なオブジェクト。
属性(プロパティ)・・・ オブジェクトが持つデータ(名前、年齢など)です。
メソッド・・・オブジェクトが実行できる動作(話す、歩くなど)です。
今回作るExcelVBAでは、クラスファイル内でクラスを作成し、クラスの中でプロパティ、メソッドを定義します。
クラスファイルを作った後、標準モジュール内でインスタンスを生成して、インスタンスのプロパティを定義し、メソッドを使ってみます。
Excel VBAでクラスモジュールを使ってみる
クラスモジュールを使ってみます。
Excelを起動して、「ALT」+「F11」を押して、「Microsoft Visual Basic For Application」を起動します。
「ThisWorkBook」を右クリックして、「挿入」→「クラスモジュール」をクリックします。

Class1ファイルができます。名前は「Class1」という名前が自動的に割り与えられます。
ファイル名がクラスの名前になります。インスタンスを作成する時にこの「Class1」を指定します。
変更することも可能です。

クラスファイルにプログラムを記載します。

Name と Age は プロパティ です。インスタンス生成した後にプロパンティの値を設定できます。
Introduce は メソッド と呼ばれ、オブジェクトが実行できる動作です。ここでは、Msgboxでメッセージを出すメソッドになります。
標準モジュールでインスタンス生成、プロパティの設定、メソッドの使用
続いて、標準モジュール内に以下のコードを記載します。
インスタンスを生成し、プロパティの値を設定、メソッドを利用します。
「ThisWorkBook」を右クリックして、「挿入」→「標準モジュール」をクリックします。

下記を記載します。
Dim person as New Class1
person という変数に、Class1 の新しいインスタンス(オブジェクト)を作成して代入します。
person.Name = “太郎”
person.Age=20
person のプロパティに値を代入します。person.Nameに太郎、person.ageに20を代入します。
person.Introduce
person の Introduce メソッドを実行します。
Class1で定義したIntroduceが実行されます。Msgboxが実行されます。

Excel VBA クラスファイルの実行
実行してみます。実行は、Testモジュールを実行します。
赤枠の実行ボタンをクリックします。

「Test」を実行ボタンをクリックします。

Msgboxが実行されます。

まとめ
今回は、ExcelVBAでクラスファイルの作成について解説しました。