【入門編】コメントアウトの極意:コードの「意図」を残すための記述ルールとメンテナンス性 – Excel VBA解析バイブル

スポンサーリンク

こんにちは!VBAの基礎から実務の自動化まで、あなたの開発ライフをサポートする先輩エンジニアです。

今回は、VBAの学習において、そして実務でマクロを書き続ける上で、最も大切と言っても過言ではない「コメントアウトの極意」についてお話しします。

マクロの記録から一歩踏み出し、自分でコードを書けるようになると、最初は動くだけで感動しますよね。「よし、今日も自動化できた!」と。
しかし、数ヶ月後にそのコードを開いたとき、こう思ったことはありませんか?

  • 「……あれ? この変数、何のためにあるんだっけ?」
  • 「ここ、なんでわざわざこんな回りくどい書き方してるんだろう?」

そう、未来の自分は、驚くほど他人なんです。
今回は、コードの「何をしているか(How)」ではなく、「なぜそうしたか(Why)」を残すためのコメントの技術と、メンテナンス性を劇的に高めるルールを伝授します。ここをクリアすれば、あなたのVBAスキルは一段上のステージに行けますよ!それでは、一緒に見ていきましょう。

1. 初心者がやりがちな「NGコメント」の罠

まずは、よくある残念なコメントの例から見てみましょう。以下のコードを見て、どう感じますか?

Sub Sample_Bad()
‘ 変数iを宣言する
Dim i As Long

‘ 1から10までループする
For i = 1 To 10
‘ セルにiの値を入れる
Cells(i, 1).Value = i
Next i
End Sub

一見すると、丁寧なコメントがついているように思えますよね。でも、プロの視点から見ると、これは「最悪なコメントの例」です。

なぜなら、コードを見れば「`Dim i As Long`(変数を宣言している)」「`For i = 1 To 10`(1から10までループしている)」というのは、VBAが読める人(そして数ヶ月後のあなた)なら一目でわかるからです。

「コードが語る『何をしているか(How)』を、日本語でただ翻訳しただけのコメント」は、コードを修正したときにコメントの修正漏れを生む原因になり、ノイズ(邪魔な情報)でしかありません。

2. 極意:コメントには「意図(Why)」と「背景」を書け

では、どう書くべきなのでしょうか?
優れたコメントとは、「なぜそのコードが必要なのか」「なぜこの書き方を選んだのか」という、コードだけでは伝わらない『意図や背景』を補うものです。

先ほどのコードを、実務で使える「正しいコメント」に書き直してみましょう。

Sub Sample_Good()
Dim i As Long

‘ 【意図】A1:A10のエリアに連番を振ることで、
‘ 後続のデータ転記処理における行数の基準値とする
For i = 1 To 10
Cells(i, 1).Value = i
Next i
End Sub

どうでしょうか。「なぜこの処理をわざわざやっているのか」の文脈(コンテキスト)が見えてきましたよね。これなら、数ヶ月後にこのコードを見たときも、「あぁ、後続の処理の基準値を作るために連番を振ってたんだな」と一瞬で理解できます。

3. 実務で役立つ!コメント記述の3大ルール

ここからは、開発現場で明日からすぐに使える具体的なルールを3つ紹介します。

ルール①:「トリッキーな実装」には必ず言い訳(理由)を残す

王道から外れた書き方や、不本意だけどこうせざるを得なかった理由(制約)がある場合は、必ずコメントに残します。

‘ 【注意】Excelの仕様によるバグ(※特定バージョンでのフリーズ)を回避するため、
‘ あえてインデックスを逆順(最終行から上に向かって)で処理しています。
For i = lastRow To 1 Step -1
‘ 処理…
Next i

「なぜ逆順なのか」が書いてあると、後から見た人が「あ、ここはバグ回避なんだな。勝手に順順に変えちゃダメだな」と気づくことができます。

ルール②:未完成の部分や「爆弾(TODO)」を明確にする

開発途中の箇所や、後で修正が必要な箇所には `TODO` というキーワードを使うのがエンジニアの共通言語です。

‘ TODO: 2023年末で仕様が変わるため、来年1月以降は消費税率の取得先を
‘ セル参照ではなく定数に変更する必要あり(担当:佐藤)
Dim taxRate As Double
taxRate = Range(“B1”).Value

こうしておけば、Ctrl + F キーなどで「TODO」を一括検索し、メンテナンス漏れを防ぐことができます。

ルール③:ブロックの頭で「要約」を語る

細かい行ごとではなく、まとまった処理(プロシージャや大きなIF文の塊)の冒頭で、そのブロックが何を達成しようとしているのかを簡潔に示します。

‘ ==========================================
‘ 【処理ブロック】重複データの排除とエラーチェック
‘ ==========================================
If 〇〇 Then
‘ …
End If

4. 知っておくと得する!VBEの便利テクニック

コメントを書くときに知っておくと作業効率が爆上がりする、VBE(Visual Basic Editor)の基本機能もおさらいしておきましょう。

1. コメントブロックの切り替え
大量のコードを一気にコメントアウトしたいときは、VBEのツールバーにある「コメント ブロック」「コメント ブロック解除」のアイコンを使いましょう(ショートカットキーに登録しておくと神のように便利です)。
2. シングルクォーテーション(’)の活用
VBAでは行頭に `’` をつけるとその行がコメントになります。行の途中に書くこともできますが、コードの可読性が落ちるため、基本は「コメントしたい行の真上」に書くのが美しい作法です。

まとめ:コメントは「未来の自分へ宛てたラブレター」

Excel VBAのコードは、パソコンに指示を出すためのものであると同時に、「人間(自分や同僚)に向けて書く説明書」でもあります。

「何をしているか(How)」ではなく、「なぜそうしたか(Why)」を意識してコメントを残す習慣をつけてみてください。
数ヶ月後のあなたがコードを開いたとき、「過去の自分、なんて気が利くんだ……!」と感動する日が必ず来ます。

ここをクリアすれば、あなたのVBAスキルは「ただ動くマクロを作る人」から「保守性の高いシステムを組めるエンジニア」へと大きく飛躍しますよ。
明日からのコード書きで、ぜひ意識してみてくださいね!

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