Excel VBAのコメントの書き方とエキスパート試験のポイント

コメントは、コードの中に説明を入れたいときに使う。また、コードの一部を実行させないようにする目的でも使用する。

このページではVBAのコメントの書き方について説明する。

スポンサーリンク

シングルクォーテーションを使う

行頭にシングルクォーテーション「'」を付けると、その行はコメント行になる。

'コメント1
Sub Test1()
    Dim str As String
    'コメント2
    str = "Excel VBA"
    MsgBox str
End Sub

また、行の途中にシングルクォーテーションを書いた場合も、行の途中からコメントとして扱われる。

Sub Test()
    Dim str As String 'コメント1
    str = "Excel VBA"
    MsgBox str
End Sub 'コメント2

シングルクォーテーションを連続で記述した場合もコメントとして認識される。

'''コメント1
Sub Test()
    Dim str As String '''コメント2
    str = "Excel VBA"
    MsgBox str
End Sub

Remステートメントを使う

アルファベット3文字「Rem」を行頭に書くと、その行はコメント行になる。

Rem コメント1
Sub Test1()
    Dim str As String
    str = "Excel VBA"
    Rem コメント2
    MsgBox str
End Sub

行の途中から「Rem」と書いてもコメントとして扱われない。この点はシングルクォーテーションによるコメントとは異なる。次のプロシージャを実行するとコンパイルエラーが発生する。

Sub Test()
    Dim str As String Rem コメント1
    str = "Excel VBA"
    MsgBox str
End Sub

なお、Remは Remark(=意見、コメント)の略だ。

Remよりもシングルクォーテーションのほうが、一般的に使用されている。少なくとも私自身はRemによるコメント行を見たことがない。実務上は使わないと思う。Remに関しては、エキスパート試験のための知識として覚えておけば充分だろう。

複数行をまとめてコメント化するには?

Excel VBAには、複数行をまとめてコメント化する方法はない。よって、シングルクォーテーション(またはRem)を使って、ひとつひとつの行をコメントにする必要がある。

'コメント1
'コメント2
'コメント3
'コメント4

たとえばC#というプログラミング言語なら、/*  */を使って複数行をコメント化することができる。

/*
コメント1
コメント2
コメント3
コメント4
*/

しかし、この書き方はExcel VBAには用意されていないことを覚えておこう。

コメントを書けない場所

コメントを書くことができない場所がある。それは行継続文字「 _」の後ろだ。次のプロシージャを実行するとコンパイルエラーが発生する。

Sub Test()
    Dim str As String
    str = "Excel" & _ 'ここにコメントは不可
          "VBA" & _
          "Basic"
    MsgBox str
End Sub

コメント