VBAでコードを書く際、避けて通れないのが「命名」の問題です。
変数名やプロシージャ名、シート名やブック名まで、すべてに“名前”をつける必要があります。
とはいえ、明確な正解があるわけではなく、現場やチームによってルールもバラバラです。
実務でよく見かける命名のパターンを3つ紹介し、どんな考え方で名付ければいいのかを整理していきます。
英単語ベースのシンプル命名
最もよく使われるのが、英単語やその省略をベースにした命名です。特別な形式にこだわらず、内容がわかればよいという考え方です。
Dim total As Long
Dim nameList As Variant
Dim ws As Worksheet
特徴は次の通りです。
- 英語(または省略形)で意味が分かるようにする
- 名前が長すぎないようにする
- タイプ(数値か文字列か)は変数名から想像できるようにする
業務に特化した単語(invoice、client、paidなど)も多く使われ、覚えやすく管理しやすいのがメリットです。
ただし、人によって略し方が違うと読みづらくなる点に注意が必要です。
型名を頭につける命名(プレフィックス)
Accessや一部のVBA経験者の間で好まれるのが、「型の頭文字をつける」スタイルです。
たとえば、文字列なら strName、数値なら lngTotal などです。
Dim strTitle As String
Dim lngCount As Long
Dim wsSheet As Worksheet
このスタイルの良い点は、変数の中身が型として何なのかが見ただけでわかることです。
一方で、慣れないと読みづらく、略語のルールが独自になりやすいという欠点もあります。
実務では「後から読む人のためにプレフィックス付きで書いている」というパターンも多く、チームで運用している場合に有効です。
単語のつなぎ方で意味をわかりやすくする方法
最近では、VBAでも「見た目で意味がわかるように名前を付ける」ために、単語のつなぎ方に工夫を加えるケースが増えてきました。
たとえば次のような名前の付け方があります。
client_name… 単語をアンダーバー(_)でつなぐ方法。これをスネークケースと呼びます。ClientName… 単語の最初をすべて大文字にする方法。これがパスカルケースです。clientName… 最初の単語は小文字、それ以降の単語の頭文字だけを大文字にする方法。これをキャメルケースと呼びます。
Dim client_name As String ' スネークケースの例
Dim InvoiceDate As Date ' パスカルケースの例
Dim totalAmount As Double ' キャメルケースの例
また、次のようなルールで使い分けると整理しやすくなります。
- 変数名 →
totalAmountのようなキャメルケース - プロシージャ名 →
SendInvoiceのようなパスカルケース - 定数名 →
MAX_ROWのようにすべて大文字+アンダースコア(アンダーバー)
このように名前にルールを設けておくことで、マクロの処理構造が把握しやすくなり、可読性が高くなります。
実装するメリット
命名にルールを持たせることのメリットは非常に大きいです。
- コードが読みやすくなる
- 関数・変数の目的が一目でわかる
- エラーが減り、保守がしやすくなる
- 他の人が見ても理解しやすい
マクロが成長していくにつれ、コードはどんどん長くなります。
後から読み返すこと、誰かと共有することを前提にしておくと、命名は“手抜きできない大切な要素”になります。
まとめ
命名ルールに「これが正解!」というものはありません。
大切なのは、自分が理解できること、そして他人が見てもわかることです。
- 英語ベースの簡潔な名前
- 型を意識したプレフィックス型(strName や lngCount など)
- 単語のつなぎ方で意味を表すケース(スネーク・パスカル・キャメル)
まずは一貫性を持つこと。
そして、マクロが複雑になっても読みやすさを保てるように、命名ルールを自分なりに決めておくと、後々のトラブルを防ぐことができます。
「この変数、なんだったっけ?」とならないために、ぜひ、今日から命名にひと工夫を取り入れてみましょう。
