VBA のコメント
目的:プログラムの中に「人向けの説明」を書くための仕組み。実行時は無視され、コードを読みやすくしたり、あとで直すときのメモとして使います。
1) コメントとは?
- コメントはプログラムの動作には影響を与えないテキストです。
- 読むのは人間(あなたや他の開発者、将来の自分)向け。コードの「意図」「注意点」「TODO」などを書き残します。
例:'(シングルクォーテーション)で始めた行はコメントになります。
' これはコメント(うしろの行は実行されない)
Range("A1").Value = "Hello" ' ここにもコメントを書けるVB2) コメントの書き方(基本)
- 行頭に
'を付けると、その行は全てコメントになります。 - 行の途中に
'を入れると、その位置以降がコメントになります。
' 行全体がコメント
Range("B1").Value = 123 ' この部分はコメント
VBポイント(初心者向け)
- コメントは簡潔に:何をしているのか、なぜそうしているかを書きます。
- 「何を」ではなく「なぜ」を書くと、後から読んだときに理解が早いです。
- 悪い例:
' 値を設定する - 良い例:
' A列は日付列のため、シリアル値ではなく文字列として保存する
- 悪い例:
3) コメントでコードを一時停止(デバッグや実験)
- 動かしたくない行の先頭に
'を付けて実行対象から外せます。
' Range("C1").Value = "テスト" ' 一時的に実行させない
VB- これを使うと、元のコードを消さずに確認・調整ができます。
4) 複数行を一括でコメント/解除する方法
- VBA の文法として「複数行コメントを囲う専用記法」はありません(他言語の
/* ... */のようなものがない)。 - VBE(Visual Basic Editor)上で複数行を選択して、ツールバーの「コメントブロック」/「非コメントブロック」ボタンを使うのが一般的。
VBE にボタンを追加する(手順)
- VBE を開く(Excel で Alt + F11)。
- ツールバーの空白部分を右クリック → Customize(カスタマイズ)を選ぶ。
- Commands(コマンド)タブを開き、カテゴリから Edit を選ぶ。
- リストの中から Comment Block と Uncomment Block を探して、ドラッグでツールバーに追加する。
- 使いたい行を選択して追加したボタンを押すと、選択行の先頭にすべて
'が付く(または外れる)。
注: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
VB6) コメントの書き方のコツ(読みやすく・保守しやすく)
- 要点のみを書く:長文は避ける。短く、でも十分な情報を。
- TODO や FIXME タグを使う:検索しやすくするために
TODO:やFIXME:を使う。- 例:
' TODO: 日付フォーマットが yyyy/mm/dd 固定になっているので改善する
- 例:
- 関数の先頭に説明を必ず書く:引数や返り値、処理の目的を簡潔に。
' 引数: startRow (開始行), col (列番号)
' 返り値: 指定列の最終行番号
Function GetLastRow(ByVal startRow As Long, ByVal col As Long) As Long
' 実装...
End Function
VB7) 練習問題(初心者向け)
問題 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
VB8) 練習問題の解答例
問題 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
VB9) よくある間違い・注意点
- コメントを 過剰に書きすぎる と逆に読みづらくなる。重要な部分に絞る。
- コードとコメントが食い違う(コメントを更新し忘れる)と混乱の元。コードを変えたらコメントも更新する習慣をつける。
- コメントにパスワードや機密情報を書かない(ソースが配布されたときに漏洩する可能性がある)。
まとめ(すぐ使えるチェックリスト)
- 何をしたかだけでなくなぜしたかを書く。
- 関数/サブルーチンの先頭に目的・引数説明を入れる。
- デバッグ時はコメントアウトで一時無効化する。
- 重要な TODO は
TODO:タグで残す。 - コメントは短く簡潔に。コード変更時はコメントも更新する。
追加ヘルプ
このドキュメントを元に、実際にあなた用の「練習用マクロ(コメント付き)」を作る手順や、VBE でのツールバー追加操作をスクリーンショット付きで欲しい場合はそのまま教えてください。
