【VBA】名前の付け方のルール|変数・プロシージャの命名規則まとめ

VBAを使った開発では、**命名規則(ネーミングルール)**が可読性・保守性に大きく影響します。
名前付けが適当だと、コードが読みづらくなり、修正時のミスや時間ロスにつながります。

この記事では、初心者でもすぐに使える「わかりやすく・実務でも通用する命名規則」を紹介します。


1. なぜ命名規則が重要なのか

命名規則は「後から読んでも理解できるコード」を作るための基本です。

● 名前が適切だと…

  • プロシージャの目的が一目でわかる
  • 変数が何を表すのか迷わない
  • 他のメンバーが読んでも理解しやすい
  • 自分が数ヶ月後に見たときも迷わない

● 名前が適当だと…

  • ABxxdata1 など曖昧な名前が並ぶ
  • 修正時に意味を調べる時間が発生
  • 同じような名前が増えて管理不能に…

実務では後者がトラブル要因になりやすいため、最初から名前付けを丁寧に行うことが大切です。


2. プロシージャ(Sub・Function)の命名ルール

● 動作がわかる動詞スタートがおすすめ

例:

  • ExportData(データを出力する)
  • UpdateSheet(シートを更新する)
  • CreateReport(レポートを作る)

Subは処理を行うため「動詞+目的語
Functionは計算結果を返すため「名詞または動詞+名詞 を意識すると読みやすくなります。

● NG例(意味が曖昧)

  • Test
  • Sub1
  • DoIt
  • ProcessA

「何をするのかがわからない」名前は避けるのが基本です。


3. 変数名の命名ルール

● データの意味がわかる名前にする

例:

  • lastRow(最終行)
  • totalAmount(合計額)
  • userName(ユーザー名)
  • filePath(ファイルパス)

変数名の1つ目の意味の頭文字は「小文字
変数名の2つ目の意味の頭文字は「大文字」を意識すると読みやすくなります。

「最終行(lastRow)」の場合:最終と行で区切る 
 →last(最終)の頭文字は小文字、Row(行)の頭文字は大文字

● Booleanは「Is」「Has」「Can」などを付けると読みやすい

例:

  • isFound
  • hasError
  • canExecute

条件判定の可読性が劇的に上がります。

If isFound Then
    '処理
End If

4. モジュール名の命名ルール

● モジュールは「役割」で分類する

例:

  • modFile(ファイル処理)
  • modSheet(シート操作)
  • modCommon(共通関数)
  • modUI(画面操作)

プロジェクトが大きくなるほど、モジュールの役割分担は重要になります。

● クラスモジュールは「オブジェクト名」で命名

例:

  • clsEmployee
  • clsProduct
  • clsLogger

“cls” や “mod” は実務でよく使われる接頭辞(プレフィックス)です。


5. 定数・列挙体の命名ルール

定数は ALL CAPS(大文字)+アンダースコア が一般的です。

例:

Const FILE_NAME As String = "data.csv"
Const MAX_COUNT As Long = 100

列挙体(Enum)は 先頭に共通プレフィックス を付ける。

Enum Status
    Status_OK = 1
    Status_NG = 0
End Enum

6. 単語はキャメルケース or パスカルケースで統一

どちらでも良いですが、同一プロジェクト内で統一することが最重要。

  • PascalCase:CreateReportFile
  • camelCase:createReportFile

VBAでは PascalCase が多く使われます。


7. 実務で避けたい命名例

● 1文字の変数名(例外:ループカウンタのみ可)

  • ij 以外は禁止

● 曖昧すぎる名前

  • datavaluetemp

● 後から用途が変わったのに名前がそのまま

例:filePath が実はフォルダパスになっていた → バグのもと


8. 命名規則のまとめ

  • プロシージャは動詞から始める
  • 変数は意味が伝わる名前に
  • Booleanは Is/Has/Can を使う
  • モジュールは役割で分類
  • 定数は大文字+アンダースコア
  • 命名スタイルはプロジェクトで統一

命名はコーディングの基本ですが、保守性に直結する重要なポイントです。

コメント

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