【VBA】簡単なクラスの作成と利用例|プロパティ・メソッド・インスタンスの基本

クラスモジュールは「オブジェクトの設計図」として使われますが、
実際にどのように作成し、どのように使うのかイメージしにくい方も多いでしょう。

ここでは 最もシンプルで実務でも応用しやすいクラスの作成例 を紹介します。
「プロパティ」「メソッド」「インスタンス生成」という基本要素をひと通り体験できる構成です。


スポンサーリンク

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)
  • インスタンス生成と利用
  • 実務的な応用方法

ここまで理解すれば、
実務でクラスモジュールを使うための基礎は十分です。

コメント

タイトルとURLをコピーしました