クラスモジュールは「オブジェクトの設計図」として使われますが、
実際にどのように作成し、どのように使うのかイメージしにくい方も多いでしょう。
ここでは 最もシンプルで実務でも応用しやすいクラスの作成例 を紹介します。
「プロパティ」「メソッド」「インスタンス生成」という基本要素をひと通り体験できる構成です。
目次
1. 例として「社員」を表すクラスを作る
今回は、社員情報を持ち、自己紹介を行う
clsEmployee というクラスを作成します。
管理したい情報は以下の2つ:
- 社員名(Name)
- 部署名(Department)
そして動作として、
- 自己紹介をメッセージ表示するメソッド ShowInfo
を用意します。
2. クラスモジュール(clsEmployee)の実装例
クラスモジュール名:clsEmployee
Option Explicit
Private pName As String
Private pDepartment As String
Property Let Name(value As String)
pName = value
End Property
Property Get Name() As String
Name = pName
End Property
Property Let Department(value As String)
pDepartment = value
End Property
Property Get Department() As String
Department = pDepartment
End Property
Public Sub ShowInfo()
MsgBox "私は " & pDepartment & " の " & pName & " です。"
End Sub
3. 標準モジュールで利用するコード
Sub TestEmployeeClass()
Dim emp As clsEmployee
Set emp = New clsEmployee 'インスタンス生成
emp.Name = "田中"
emp.Department = "営業部"
emp.ShowInfo 'メソッド実行
End Sub
実行すると、
私は 営業部 の 田中 です。
というメッセージが表示されます。
4. 実務的な応用:複数社員データの処理
クラスの強みは「インスタンスを複数作れる」点です。
例えば、以下のように複数の社員を管理できます。
Sub TestEmployeeList()
Dim emp1 As New clsEmployee
Dim emp2 As New clsEmployee
emp1.Name = "佐藤"
emp1.Department = "人事部"
emp2.Name = "鈴木"
emp2.Department = "経理部"
emp1.ShowInfo
emp2.ShowInfo
End Sub
結果として、
- 人事部の佐藤
- 経理部の鈴木
という2人がそれぞれ独立したオブジェクトとして動作します。
5. 実務での活用例
▼ 1. 案件管理オブジェクト
案件名、担当者、開始日、ステータス
をプロパティとして持たせ、
進捗更新をメソッドにする。
▼ 2. ファイル管理オブジェクト
ファイルパス、更新日時
などを保持し、
自動バックアップメソッドを持たせる。
▼ 3. 入力チェックオブジェクト
入力範囲や条件をプロパティに持ち、
「Check」メソッドで検証結果を返す。
6. クラスを使うメリットまとめ
- データと処理をひとまとめにできる(保守性UP)
- プロシージャの引数が少なくなる
- 大量のデータ管理がしやすい
- 構造化され、後から読みやすい
- Excel の標準オブジェクトと同じ感覚で扱える
クラスモジュールは「難しいもの」というイメージがありますが、
今回の例のように “データ+動作” をまとめるだけ で十分効果を発揮します。
7. まとめ
今回は、最も基本的なクラス利用の例を紹介しました。
clsEmployeeクラスを作成- プロパティ(Name / Department)
- メソッド(ShowInfo)
- インスタンス生成と利用
- 実務的な応用方法
ここまで理解すれば、
実務でクラスモジュールを使うための基礎は十分です。
コメント