Excel VBA | プログラムにコメントを記述

Excel VBA VBA
スポンサーリンク

VBA のコメント

目的:プログラムの中に「人向けの説明」を書くための仕組み。実行時は無視され、コードを読みやすくしたり、あとで直すときのメモとして使います。

1) コメントとは?

  • コメントはプログラムの動作には影響を与えないテキストです。
  • 読むのは人間(あなたや他の開発者、将来の自分)向け。コードの「意図」「注意点」「TODO」などを書き残します。

例:'(シングルクォーテーション)で始めた行はコメントになります。

' これはコメント(うしろの行は実行されない)
Range("A1").Value = "Hello" ' ここにもコメントを書ける
VB

2) コメントの書き方(基本)

  • 行頭に ' を付けると、その行は全てコメントになります。
  • 行の途中' を入れると、その位置以降がコメントになります。
' 行全体がコメント
Range("B1").Value = 123  ' この部分はコメント
VB

ポイント(初心者向け)

  • コメントは簡潔に:何をしているのか、なぜそうしているかを書きます。
  • 「何を」ではなく「なぜ」を書くと、後から読んだときに理解が早いです。
    • 悪い例:' 値を設定する
    • 良い例:' A列は日付列のため、シリアル値ではなく文字列として保存する

3) コメントでコードを一時停止(デバッグや実験)

  • 動かしたくない行の先頭に ' を付けて実行対象から外せます。
' Range("C1").Value = "テスト"  ' 一時的に実行させない
VB
  • これを使うと、元のコードを消さずに確認・調整ができます。

4) 複数行を一括でコメント/解除する方法

  • VBA の文法として「複数行コメントを囲う専用記法」はありません(他言語の /* ... */ のようなものがない)。
  • VBE(Visual Basic Editor)上で複数行を選択して、ツールバーの「コメントブロック」/「非コメントブロック」ボタンを使うのが一般的。

VBE にボタンを追加する(手順)

  1. VBE を開く(Excel で Alt + F11)。
  2. ツールバーの空白部分を右クリック → Customize(カスタマイズ)を選ぶ。
  3. Commands(コマンド)タブを開き、カテゴリから Edit を選ぶ。
  4. リストの中から Comment BlockUncomment Block を探して、ドラッグでツールバーに追加する。
  5. 使いたい行を選択して追加したボタンを押すと、選択行の先頭にすべて ' が付く(または外れる)。

注:VBE のバージョンによって用語や手順が少し違うことがありますが、基本は同じです。

5) コメントの使いどころ(実践的な例)

例 1:処理の概要説明

' ====== 売上合計を計算してセルに表示する処理 ======
Sub CalcTotal()
    ' シート名を変数に格納(後でシート名を変えてもここだけ変えればOK)
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("売上")

    ' 最終行の取得
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' 合計を求める(A列が数値)
    ws.Range("B1").Value = Application.WorksheetFunction.Sum(ws.Range("A2:A" & lastRow))
End Sub
VB

上の例では、どの処理をしているかを先頭に書き、コード内の重要な行にも短い説明を加えています。

例 2:一時的に行を無効化して動作確認

Sub TestMacro()
    Range("A1").Value = "開始"  ' 動くか確認
    'Range("A2").Value = "ここは今は実行しない"
    Range("A3").Value = "終了"  ' 結果を確認
End Sub
VB

6) コメントの書き方のコツ(読みやすく・保守しやすく)

  • 要点のみを書く:長文は避ける。短く、でも十分な情報を。
  • TODO や FIXME タグを使う:検索しやすくするために TODO:FIXME: を使う。
    • 例:' TODO: 日付フォーマットが yyyy/mm/dd 固定になっているので改善する
  • 関数の先頭に説明を必ず書く:引数や返り値、処理の目的を簡潔に。
' 引数: startRow (開始行), col (列番号)
' 返り値: 指定列の最終行番号
Function GetLastRow(ByVal startRow As Long, ByVal col As Long) As Long
    ' 実装...
End Function
VB

7) 練習問題(初心者向け)

問題 1:次のコードにコメントを追加して、何をしているか説明してください。

Sub Sample1()
    Dim i As Integer
    For i = 1 To 5
        Cells(i, 1).Value = i * 10
    Next i
End Sub
VB

問題 2:次のコードの 2 行を一時的に実行させないようにしてください(コメントアウト)。

Sub Sample2()
    Range("A1").Value = "Start"
    Range("A2").Value = "Middle"
    Range("A3").Value = "End"
End Sub
VB

8) 練習問題の解答例

問題 1 解答例

Sub Sample1()
    Dim i As Integer
    ' 1 から 5 までループして、A列の 1 行目から順に 10,20,30... を入れる
    For i = 1 To 5
        Cells(i, 1).Value = i * 10  ' i に 10 を掛けてセルに代入
    Next i
End Sub
VB

問題 2 解答例(コメントアウト)

Sub Sample2()
    Range("A1").Value = "Start"
    'Range("A2").Value = "Middle"  ' 今は実行しない
    Range("A3").Value = "End"
End Sub
VB

9) よくある間違い・注意点

  • コメントを 過剰に書きすぎる と逆に読みづらくなる。重要な部分に絞る。
  • コードとコメントが食い違う(コメントを更新し忘れる)と混乱の元。コードを変えたらコメントも更新する習慣をつける。
  • コメントにパスワードや機密情報を書かない(ソースが配布されたときに漏洩する可能性がある)。

まとめ(すぐ使えるチェックリスト)

  • 何をしたかだけでなくなぜしたかを書く。
  • 関数/サブルーチンの先頭に目的・引数説明を入れる。
  • デバッグ時はコメントアウトで一時無効化する。
  • 重要な TODO は TODO: タグで残す。
  • コメントは短く簡潔に。コード変更時はコメントも更新する。

追加ヘルプ

このドキュメントを元に、実際にあなた用の「練習用マクロ(コメント付き)」を作る手順や、VBE でのツールバー追加操作をスクリーンショット付きで欲しい場合はそのまま教えてください。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました