プロシージャの整理術 ― 可読性と保守性を高める設計
VBAでは「書けること」と「読めること」は別物です。
実務では、自分以外の人が読んでも理解できるコードが求められます。そのために必要なのが「コメントの付け方」と「コード構造の整え方」です。
この記事では、VBAで可読性を高めるために必須となる「コメント」と「構造化」のコツを解説します。
目次
1. コメントは“誰が読んでもわかる”を意識する
コメントは、コードの意図・背景・理由を書くものであり、単なる動作説明ではありません。
● コメントの基本方針
- “書いた本人以外”が読んでも理解できること
- コードを見ただけではわからない情報を書く
- 処理の理由や前提条件を書く
■ 悪い例(動作だけ書いている)
'セルに値を入れる
Range("A1").Value = 10
これはコードを見ればわかります。
■ 良い例(理由・意図・背景を書く)
'レポート生成時の初期値として数量を10に設定
Range("A1").Value = 10
「なぜ 10 を入れるのか」がわかるため、保守が圧倒的に楽になります。
2. プロシージャの冒頭に“処理概要”を書く
プロシージャの最初に、以下のようなコメントを入れると全体像が把握しやすくなります。
● 書くべき内容
- 目的(何のためのプロシージャか)
- 入力(使用する引数など)
- 出力(関数の戻り値、変更するセル範囲など)
- 注意点・前提条件
■ 実例
'【概要】月次レポートを生成するメイン処理
'【入力】特になし(処理内でデータを取得)
'【出力】レポートシートに結果を出力
'【注意】売上シートが最新状態であることが前提
Sub CreateMonthlyReport()
実務ではこのスタイルが非常に役立ちます。
3. セクション分けで“処理のまとまり”を作る
コードが長くなるほど、処理がどこで切り替わるか見えにくくなります。
そのため、大きな流れごとにコメントで区切るのがおすすめです。
■ セクション分け例
'==== 1. 初期設定 ==========================================
'シート・変数の準備
Set ws = Worksheets("売上")
'==== 2. データ抽出 =========================================
'売上データをフィルタリングして必要行を取得
'==== 3. 集計処理 ===========================================
'合計・平均などを計算
'==== 4. 出力処理 ===========================================
'レポートシートへ集計結果を書き込み
ポイント:
- 長いプロシージャほど効果が大きい
- チーム開発ではほぼ必須レベルの読みやすさ向上
4. 変数・定数にも“説明コメント”を添える
特に意図が伝わりにくい定数や変数には、簡易コメントを付けます。
■ 良い例
Const TAX_RATE As Double = 0.1 '消費税率(将来変更の可能性あり)
■ 悪い例(説明なし)
Const TAX_RATE As Double = 0.1
10%の税率なのは見ればわかりますが、「なぜ定数化したのか」「何のためか」が伝わりません。
5. コメントは“書きすぎてもダメ”という注意点
コメントが多すぎると、逆に可読性が下がることがあります。
● 避けるべきコメント
- コードの動作そのものを説明するだけのコメント
- 1行ごとにコメントを付ける
- コードを変更したのにコメントを変え忘れる
● ベストは「適度に、必要なところだけ」
「構造化+要所のコメント」
これが最も読みやすく保守しやすいコードになります。
6. コメントとコードレイアウトをセットで整える
読みやすさはコメントだけでなく 空行 や インデント によっても決まります。
● レイアウトの基本
- 処理の区切りに空行を入れる
- ネスト(IfやFor)の中はインデントを下げる
- 引数が多いときは改行して並べる
例:
If isValid Then
'条件を満たす場合のみ実行
Call ExportData
End If
インデントがあるだけで意図が格段に伝わります。
7. まとめ
VBAのコード品質は コメント・構造化・レイアウト の3本柱で決まります。
✔ コメントのポイント
- 理由・背景を書く
- プロシージャ冒頭に概要を書く
- セクションで処理を区切る
- 必要な変数に説明を付ける
✔ 過剰なコメントは逆効果
- 説明しすぎず、意図が必要なところだけ書く
実務では、コメントが丁寧なコードほど引き継ぎ、改修、再利用がスムーズになります。
「誰が読んでもわかるコード」を意識して、日々の開発に役立ててください。
コメント