【VBA入門】コメントアウトの書き方とセルへのコメント追加

Excelには、コメントと呼ばれる機能があります。

この記事では、コメントについて

  • コメントとは
  • コードにコメントを追加する方法
  • 複数行を一括でコメントアウトする方法
  • セルのコメントを追加と削除する方法

といったように、基本的な内容から応用的な使い方についても解説していきます。

コメントが意味する内容は複数あるので、まずは定義を確認します。その後で、例を交えながら詳しく解説していきます。

コメントとは

Excelには、コメントと呼ばれる機能は2種類あります。

1つは、VBAのコードのコメントです。もう1つは、Excelのセルのコメントです。名前は同じですが、次のように両者は全く別の機能です。

VBAコードのコメントアウト

VBAのコードのコメントは、コードに対するメモ書きとして使用できます。これにより、自分が書いたコードを他人が見たときに理解しやすくなります。

また、自分が書いたコードでも時間がたつと忘れてしまいます。将来の自分の為にもなるので、コメントを書く習慣をつけておくといいですね。

次の画像は、VBAのコードのコメントの例です。

vba_comments07 0

コメントはプログラムの実行結果に影響しないので、テストやデバッグのためにコードを一時的にコメントにすることもあります。

セルのコメント

Excelでは、次のようにセルを「右クリック→コメントの挿入」としてセルのコメントを使用することができます。

vba_comments02

次の画像ようなセルのコメントが挿入されます。

vba_comments03

デフォルトでは、セルのコメントはマウスカーソルがセルの上にある場合のみ表示されます。

マウスカーソルがセルの上にない場合は、次のように右上の角に赤いマークが表示されています。

vba_comments04

このセルのコメントは、常に表示させることができます。そのためには、次のようにセルのコメントがあるセルを「右クリック→コメントの表示/非表示」とします。

vba_comments05

逆に、表示させないためには、次のように「右クリック→コメントのコメントを表示しない」とします。

vba_comments06

ここまで見た通り、VBAのコードのコメントとセルのコメントは全く別の異なる機能です。

コードにコメントを追加する方法

VBAでは、次のように'(シングルクォーテーション)を用いてコメントを使用することができます。

' コメント

次のサンプルコードでは、「' これがコメントです。」と「MsgBox("このコードは実行されません。")」の部分がコメントです。

Sub Sample1()
    ' これがコメントです。
    ' MsgBox("このコードは実行されません。")
    MsgBox ("このコードは実行されます。")
End Sub
[実行結果]

vba_comments07

このようにコメントは実行結果に影響を与えません。

複数行を一括でコメントアウトする方法

動作確認の際に、複数行を一括でコメントアウトできると便利ですね。これは、コメントブロックを使用することで可能です。

vba_comments08

コメントブロックが表示されていない場合があります。その場合は、メニューバーから「表示→ツールバー→編集」とすることで表示されます。

vba_comments09

コメントブロックの使い方

コメントにしたい行を選択して、メニューバーからコメントブロックをクリックします。

vba_comments08

[実行前]

vba_comments07 0

(全ての行を選択し、コメントブロックをクリックします。)

[実行後]

vba_comments01

実行後の画像から複数行を一括でコメントアウトされたことが確認できます。

非コメントブロックの使い方

コメントを解除したい行を選択して、メニューバーから非コメントブロックをクリックします。

vba_comments10

[実行前]

vba_comments01

(全ての行を選択し、コメントブロックをクリックします。)

[実行後]

vba_comments07 0

実行後の画像から複数行に渡るコメントアウトが解除されたことが確認できます。

セルのコメントを追加と削除する方法

AddCommentでセルにコメントを追加する

AddCommentメソッドでセルにコメントを追加するためには、次のように記述します。

Sub Sample()
    Range("B2").AddComment "これが、セルのコメントです"
    Range("C3").AddComment "これも、セルのコメントです"
End Sub
[実行結果]

vba_comments11

実行結果から、セルの右上の角に赤いマークが付き、セルのコメントが追加されていることが確認できます。

また、次のようにセルのコメントの設定を行う方法があります。

Sub Sample()
    Range("B2").AddComment "これが、セルのコメントです"
    
    With Range("C3").AddComment("これも、セルのコメントです")
         .Visible = True
    End With
End Sub

AddCommentメソッドは戻り値として、セルのコメントのオブジェクトを返します。セルC3のコメントをWithステートメントに指定して、設定を行っています。

この例では、コメントを常に表示するために「.Visible = True」としています。

Withステートメントについて、詳しくは次の記事で取り扱っていますので是非ご覧ください!

【VBA入門】Withの使い方、入れ子(ネスト)で使う方法
更新日 : 2019年4月3日
[実行結果]

vba_comments12

コメントが常に表示されていることが確認できます。

ClearCommentsでセルのコメントを削除する

次のように範囲内を指定してClearCommentsメソッドでセルのコメントを削除できます。

Sub Sample()
    Range("B2:C3").ClearComments
End Sub

このサンプルコードでは、セルB2からセルC3までの範囲にあるセルのコメントを削除するために「Range("B2:C3").ClearComments」としています。

[実行結果]

vba_comments13

実行結果より、セルB2からセルC3までの範囲にあるセルのコメントが全て削除されていることを確認できます。

セルのコメントを取得する方法

セルのコメントを取得するにはCommentオブジェクトのTextプロパティを使います。

Sub Sample()
    MsgBox Range("B2").Comment.Text
End Sub
[実行結果]

Comment01

VBA以外の選択肢も

VBAを使いこなせると様々な業務が効率化できて、社内出世も見込める大切なスキルではありますが、改めてVBAを身につけて社内出世することが人生の理想なのか?を考えてみても良いかもしれません。

せっかくVBAというスキルを身につけようとしているなら、その熱量をプログラミングに向けることで、これまでとは全く違った人生を送れる可能性もあります。

実際にプログラミングを学んでみて、大企業のエンジニアへ転職し年収アップした方、主婦をやりながら在宅で仕事を取れるようになった方、フリーランスへ転向し、複業を続けている方など多くの人がプログラミングで人生を好転させています。

今後AIの発達によって、VBAを組んで効率化している業務のVBAを組む必要性さえなくなるかもしれません。この先も市場価値を高め続けるためにも親和性のあるプログラミングを学ぶのはおすすめです。

まずは何をやったらいいんだろう?というあなたはプログラミング学習診断アプリで、質問に答えていくだけであなたに最適なプログラミング言語を診断してみてください。何を学ぶべきか解説いたします。

プログラミング言語診断を受ける

まとめ

いかがでしたか?

今回は、コメントについて解説しました。VBAのコードのコメントとセルのコメントについて理解できたでしょうか?

セルのコメントの追加・削除をExcelVBAで自動化するのもいいですね。

もし、コメントを使用する機会があれば、この記事を思い出してみてください!

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

イシキ マコト

イシキ マコト

フリーランスのエンジニアです。
最近では、プログラミング関連の記事を作成するライターとしても活動しています。

趣味と業務の両方でプログラミング言語をいくつも学んできたので
その経験を活かして分かりやすい記事を作成できればと考えています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説