【VBA】なぜクラスを使うのか?|再利用性・保守性・構造化の観点から解説

VBAでは標準モジュールだけでも開発は可能ですが、
実務レベルでは「クラス」を使うことでコード品質が大きく向上します。

本記事では、なぜクラスを使うのかを以下の観点から解説します。

  • 再利用性
  • 保守性
  • 構造化

あわせて、クラスの基本的な書き方と使い方も紹介します。


スポンサーリンク

1. クラスとは何か(関係性のイメージ)

クラスとは、**データ(プロパティ)と処理をまとめた“設計図”**です。

例えば「ユーザー」を表す場合:

  • 名前(Name)
  • 年齢(Age)

といった情報を1つのまとまりとして扱います。


■ クラス定義(例:clsUser)

'クラス名:clsUser
Option Explicit

Private pName As String
Private pAge As LongPublic

Property Let Name(ByVal value As String)
pName = Trim(value)
End Property

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

Public Property Let Age(ByVal value As Long)
pAge = value
End Property

Public Property Get Age() As Long
Age = pAge
End Property

■ 利用側(呼び出し側)

Dim user As clsUser
Set user = New clsUser

user.Name = "田中"
user.Age = 30

👉 「clsUser(設計図)」から「user(実体)」を作って使うイメージ


スポンサーリンク

2. 再利用性が高まる理由

■ クラスなしの場合(再利用しづらい)

Dim name As String
name = "田中"
name = Trim(name)
name = UCase(name)

👉 同じ処理を別の場所でも書く必要がある


■ クラスありの場合(再利用できる)

user.Name = "田中"

👉 クラス内に処理をまとめておけば、どこでも同じように使える


■ メリットまとめ

  • 同じコードを書かなくてよい
  • 修正箇所が1箇所にまとまる
  • 他の処理でも流用できる

スポンサーリンク

3. 保守性が向上する理由

■ クラスなしの場合

name = Trim(name)
name = UCase(name)

👉 同じ処理が複数箇所にあると修正漏れが発生


■ クラスありの場合

Public Property Let Name(ByVal value As String)
pName = UCase(Trim(value))
End Property

👉 修正はクラス内だけでOK


■ メリットまとめ

  • 修正漏れを防げる
  • バグの影響範囲が限定される
  • 長期的な運用に強い

スポンサーリンク

4. 構造化(設計)ができる理由

■ クラスなし(整理されていない)

Dim name As String
Dim age As Long

name = "田中"
age = 30

👉 データがバラバラで分かりにくい


■ クラスあり(構造化される)

Dim user As clsUser
Set user = New clsUser

user.Name = "田中"
user.Age = 30

👉 「ユーザー」という単位でまとまる


■ メリットまとめ

  • データをひとまとめにできる
  • コードの意味が分かりやすい
  • 設計として整理される

スポンサーリンク

5. 実務での効果

クラスを使うことで、実務では以下のメリットがあります。

■ ① 拡張に強い

'clsUserに追加
Public Property Let Email(ByVal value As String)
'追加するだけ
End Property

👉 機能追加が簡単


■ ② 仕様変更に強い

👉 クラス内部だけ修正すればOK


■ ③ バグが減る

👉 影響範囲が限定されるため


スポンサーリンク

6. クラスを使わない場合の問題

  • 同じ処理があちこちに散らばる
  • 修正漏れが発生する
  • コードが読みにくくなる
  • 機能追加が難しくなる

👉 規模が大きくなるほど破綻しやすい


スポンサーリンク

7. まとめ

  • クラスは「データと処理をまとめる設計図」
  • 再利用性が向上し、同じコードを書かなくてよくなる
  • 保守性が向上し、修正が楽になる
  • 構造化によってコードが整理される

👉 実務ではクラスを使うかどうかで品質に大きな差が出る

コメント

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