【入門編】定数と変数の命名規則:チーム開発で混乱を招かないためのルール作り – Excel VBA解析バイブル

スポンサーリンク

変数名の「混沌」を終わらせる:VBAにおける命名規則の極意

こんにちは。現場で数々のスパゲッティコードを解体し、堅牢なシステムへと作り変えてきたエンジニアです。

VBAの世界に足を踏み入れたばかりの頃、「とりあえず動けばいい」と適当に付けた変数名で、半年後に泣きを見たことはありませんか? `a`, `b`, `data`, `temp`……。これらは、未来の自分に対する「時限爆弾」です。

今日は、チーム開発で「お前のコード、読みやすいな」と信頼されるための、現代的な命名規則の極意を伝授します。

1. なぜ「ハンガリアン記法」は議論を呼ぶのか?

かつてVBA界隈では、変数名の頭に型を付ける「ハンガリアン記法(`strName`, `lngCount` など)」が神聖視されていました。しかし、現代の開発環境では、マウスを合わせれば型が表示される「インテリセンス」があります。

今のトレンドは「意味重視」です。

  • 昔: `strName`(文字列であることが分かればいい)
  • 今: `userName`(中身が何であるかが分かればいい)

型を型名で表現するのではなく、「変数の役割」を名前に込める。これが、混乱を招かないための第一歩です。

2. チーム開発で生き残るための「3つの命名ルール」

私が現場で強制的に適用している、シンプルかつ強力なガイドラインを紹介します。

① 役割を具体的に書く(名詞+役割)

「何が入っているか」を想像できる名前にします。

  • NG: `data`, `val`, `temp`
  • OK: `orderDate`, `customerList`, `maxRetryCount`

② 範囲を示す(接頭辞の活用)

変数の生存範囲(スコープ)を明確にすると、バグが劇的に減ります。

  • モジュールレベル変数(Private): `p_` を付ける(例:`p_lastSavedTime`)
  • グローバル変数(Public): `g_` を付ける(例:`g_appConfig`)
  • 定数: 全部大文字でアンダースコア区切り(例:`MAX_RETRY_COUNT`)

③ 戻り値には「Function名」をそのまま使う

VBA特有のルールですが、関数内での計算結果を格納する変数には、関数名そのものを使うと可読性が爆上がりします。

‘ 良い例:関数の役割と変数が一致している
Public Function CalculateTax(ByVal price As Long) As Long
‘ 変数名を関数名と一致させることで、何のための値か一目瞭然
Dim CalculateTax As Long

CalculateTax = price 0.1
End Function

3. 実践!保守性の高いコードの書き方

実際に、これらを意識したコードを見てみましょう。

Option Explicit ‘ これを忘れるのはエンジニア失格です

‘ モジュールレベル変数には p_ を付与
Private p_retryCount As Integer

‘ 定数は大文字で定義
Private Const MAX_RETRY_COUNT As Integer = 3

Public Sub UpdateInventory()
‘ ローカル変数はキャメルケース(小文字始まり)
Dim currentStock As Long
Dim targetItemName As String

targetItemName = “Widget_A”

‘ 処理の途中で出てくる変数も役割を明確に
Dim isStockAvailable As Boolean

isStockAvailable = CheckStock(targetItemName)

If isStockAvailable Then
‘ …更新処理…
End If
End Sub

なぜこれが「極限の知見」なのか

  • `Option Explicit` の強制: 変数の宣言漏れによるエラーを撲滅します。
  • スコープの可視化: `p_` や `g_` を見るだけで、「この変数はどこまで影響があるか」を脳が即座に理解できます。
  • 型推論に頼る: `Integer` か `Long` かは、右辺の代入値から推論するのが現代のエンジニアです。型を名前に込めて変更時に名前まで変える、という不毛な作業から卒業しましょう。

最後に:コードは「手紙」である

変数名や定数名は、次にそのコードを読む「未来の自分」や「同僚」への手紙です。

「ここには注文日が入っていて、この定数は最大試行回数だよ」と、コードが自ら語りかけてくる状態を作り出せれば、あなたはもう初心者ではありません。

まずは明日書くマクロから、「`data` という変数名を禁止する」ことから始めてみてください。たったそれだけで、あなたのコードの品質は一段階上のステージへと引き上げられますよ!

ここをクリアすれば、VBAの基本はバッチリです。一緒に、読みやすく美しいコードを書いていきましょう。

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