【脱初心者】VBAでクラスモジュールを使いこなす|オブジェクト指向的な設計に挑戦

✅ この記事でわかること

  • VBAにおけるクラスモジュールの基本構造
  • オブジェクト指向的な設計の考え方
  • クラスを使った実践的なサンプルコード
  • 業務で役立つVBAスキルへの応用方法

はじめに|VBAにも「オブジェクト指向」があるって知ってた?

VBAといえば、マクロ記録やモジュールにコードを並べていく「手続き型」のイメージが強いかもしれません。
しかし、「クラスモジュール」を使えば、VBAでもオブジェクト指向的な設計が可能です。

「コードが複雑になってきた」
「他人にも使いやすい仕組みにしたい」
「保守性の高いコードを書きたい」

そんな中級者の悩みを解決するのが、クラスモジュールです。


クラスモジュールとは?|1分で理解する基礎知識

✅ 通常のモジュールとの違い

種類目的特徴
標準モジュール手続き・関数をまとめるグローバルに使える。手続き型の基本。
クラスモジュールオブジェクトを定義する設計図自作のデータ構造や振る舞いをまとめられる

✅ オブジェクトとして使えるようになる

クラスモジュールに定義したプロパティやメソッドを元に、
自分だけの「オブジェクト(実体)」を Set 文で生成できるようになります。

Dim emp As New Employee
emp.Name = "田中"
emp.ShowInfo

実例|社員クラスを作ってみよう

以下は、社員情報を管理するクラスの例です。

1. クラスモジュール(名前:Employee)

' プロパティ
Private pName As String
Private pID As Long

' 名前の設定と取得
Public Property Let Name(value As String)
    pName = value
End Property

Public Property Get Name() As String
    Name = pName
End Property

' IDの設定と取得
Public Property Let ID(value As Long)
    pID = value
End Property

Public Property Get ID() As Long
    ID = pID
End Property

' メソッド
Public Sub ShowInfo()
    MsgBox "社員ID: " & pID & vbCrLf & "名前: " & pName
End Sub

2. 呼び出し元(標準モジュール)

Sub TestEmployee()
    Dim emp As New Employee
    emp.ID = 1001
    emp.Name = "山本一郎"
    emp.ShowInfo
End Sub

クラスモジュールを使うメリット

🔹1. コードが整理され、保守性アップ

  • データと処理をセットで管理できる
  • 他のプロジェクトにも流用しやすい

🔹2. 複雑な構造もスッキリ管理

  • 社員 → 部署 → 組織 といった階層構造もクラスで表現可能

🔹3. 他人が読んでもわかりやすい

  • 「社員」「商品」「受注」など、ドメインごとにクラス化することで直感的になる

クラス活用の一歩先へ|Collectionとの組み合わせ

複数オブジェクトを扱うときは、Collectionとセットにすると便利です。

Sub TestEmployees()
    Dim empList As New Collection
    Dim emp As Employee
    Dim i As Integer
    
    For i = 1 To 3
        Set emp = New Employee
        emp.ID = 1000 + i
        emp.Name = "社員" & i
        empList.Add emp
    Next i
    
    ' 全員の情報を表示
    For Each emp In empList
        emp.ShowInfo
    Next emp
End Sub

まとめ|クラスモジュールは中級者からの必須スキル!

✅ クラスモジュールを使うことで、VBAでも「オブジェクト指向」的な設計が可能に
✅ 保守性・再利用性の高いコードが書ける
✅ 実務での応用が効き、スキルアピールにも有利


関連リンク|スキルを伸ばして年収アップを目指すなら

📌 【年収100万円アップも狙える】ITエンジニア特化の転職なら「TechClipsエージェント」がおすすめな理由
📌 【年収1,000万円も狙える!?】20代〜30代エンジニア必見!ハイクラス転職でキャリアを一気に加速させる方法

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