VBAを使った開発では、**命名規則(ネーミングルール)**が可読性・保守性に大きく影響します。
名前付けが適当だと、コードが読みづらくなり、修正時のミスや時間ロスにつながります。
この記事では、初心者でもすぐに使える「わかりやすく・実務でも通用する命名規則」を紹介します。
目次
1. なぜ命名規則が重要なのか
命名規則は「後から読んでも理解できるコード」を作るための基本です。
● 名前が適切だと…
- プロシージャの目的が一目でわかる
- 変数が何を表すのか迷わない
- 他のメンバーが読んでも理解しやすい
- 自分が数ヶ月後に見たときも迷わない
● 名前が適当だと…
A,B,xx,data1など曖昧な名前が並ぶ- 修正時に意味を調べる時間が発生
- 同じような名前が増えて管理不能に…
実務では後者がトラブル要因になりやすいため、最初から名前付けを丁寧に行うことが大切です。
2. プロシージャ(Sub・Function)の命名ルール
● 動作がわかる動詞スタートがおすすめ
例:
ExportData(データを出力する)UpdateSheet(シートを更新する)CreateReport(レポートを作る)
Subは処理を行うため「動詞+目的語」
Functionは計算結果を返すため「名詞または動詞+名詞」 を意識すると読みやすくなります。
● NG例(意味が曖昧)
TestSub1DoItProcessA
「何をするのかがわからない」名前は避けるのが基本です。
3. 変数名の命名ルール
● データの意味がわかる名前にする
例:
lastRow(最終行)totalAmount(合計額)userName(ユーザー名)filePath(ファイルパス)
変数名の1つ目の意味の頭文字は「小文字」
変数名の2つ目の意味の頭文字は「大文字」を意識すると読みやすくなります。
「最終行(lastRow)」の場合:最終と行で区切る
→last(最終)の頭文字は小文字、Row(行)の頭文字は大文字
● Booleanは「Is」「Has」「Can」などを付けると読みやすい
例:
isFoundhasErrorcanExecute
条件判定の可読性が劇的に上がります。
If isFound Then
'処理
End If
4. モジュール名の命名ルール
● モジュールは「役割」で分類する
例:
modFile(ファイル処理)modSheet(シート操作)modCommon(共通関数)modUI(画面操作)
プロジェクトが大きくなるほど、モジュールの役割分担は重要になります。
● クラスモジュールは「オブジェクト名」で命名
例:
clsEmployeeclsProductclsLogger
“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文字の変数名(例外:ループカウンタのみ可)
i,j以外は禁止
● 曖昧すぎる名前
data,value,temp
● 後から用途が変わったのに名前がそのまま
例:filePath が実はフォルダパスになっていた → バグのもと
8. 命名規則のまとめ
- プロシージャは動詞から始める
- 変数は意味が伝わる名前に
- Booleanは Is/Has/Can を使う
- モジュールは役割で分類
- 定数は大文字+アンダースコア
- 命名スタイルはプロジェクトで統一
命名はコーディングの基本ですが、保守性に直結する重要なポイントです。
コメント