【Excel VBA】セルにコメント(メモ)を追加する(AddComment)

はじめに

今回は、セルにコメント(メモ)を追加する方法について解説します。
コメント追加時に発生する可能性があるエラーについての回避方法などを、サンプルコードを用いて掲載しています。
ぜひ最後までお付き合いください!

この記事を読むメリット
  • セルにコメント(メモ)を追加する方法が分かります。
  • コメント追加時に発生するエラーの条件と、回避方法も併せて紹介しています。
  • コピペで使える実践的なサンプルコードを掲載しています。

前提

コメントの定義

本記事で紹介するコメントについて、
Microsoft 365では「メモ」、それ以外では「コメント」と呼ばれるものを指します。

具体的には以下です。

本記事で紹介するコメント

基本情報

AddCommentメソッド

セルにコメントを追加するには、RangeオブジェクトのAddCommentメソッドを使用します。

構文

Range(“A1”).AddComment Text

引数

  • Text … コメントに挿入したい文字列

既にコメントが入っているセルに対して「AddComment」メソッドを実行するとエラーとなってしまいます。
具体的な対処法として、コメントの存在チェックを実施する必要があります。後述する以下を参考としてください。
 ・基本情報 – コメントの存在チェック
 ・サンプルコード – セルにコメントを追加する(エラー回避)

コメントの存在チェック

セルにコメントが挿入されているかを確認する際には、TypeName関数を使用します。
以下のように、TypeName関数にRangeオブジェクトのCommentプロパティを指定すると、「Comment」という固定値が返却されるため、判断可能です。

サンプルコード
Public Sub checkComment()

    If TypeName(Range("A1").Comment) = "Comment" Then

        MsgBox "コメントが存在します。"
    End If
End Sub
めい

存在チェックを実施し、エラーを回避しながらコメントを追加する方法を、サンプルコード にて紹介しています。

コメントを常に表示状態で追加する

コメントの表示・非表示を切り替えるには、CommentオブジェクトのVisibleプロパティを使用します。
AddCommentメソッド使用時にVisibleプロパティを使用するには、以下のように記載します。

サンプルコード
Public Sub addCommentForVisible()

    ' A1セルに コメントを表示状態で追加する
    With Range("A1").addComment("コメント")
        .Visible = True
    End With
End Sub

サンプルコード

セルにコメントを非表示で追加する

A1セルにコメントを非表示状態で追加します。

サンプルコード
Public Sub addComment()

    ' A1セルに コメントを追加する
    Range("A1").Comment.Text "コメント"
End Sub

セルにコメントを表示状態で追加する

A1セルにコメントを表示状態で追加します。

サンプルコード
Public Sub addComment()

    ' A1セルに コメントを追加する
    With Range("A1").addComment("コメント")
        .Visible = True
    End With
End Sub

セルにコメントを追加する(エラー回避)

セルにコメントが既に存在する場合、AddCommentメソッドを実行するとエラーとなってしまいます。
既にコメントが存在している場合は編集、存在していない場合は追加するサンプルコードです。

サンプルコード
Public Sub setComment()
    Dim commentStr As String

    ' コメントに指定する文字列
    commentStr = "コメント"

    ' コメントの存在チェック
    If TypeName(Range("A1").Comment) = "Comment" Then

        ' セルにコメントが既に存在する場合、編集する
        Range("A1").Comment.Text commentStr
    Else

        ' セルにコメントが存在しない場合、追加する
        Range("A1").AddComment commentStr
    End If
End Sub
めい

コメントは非表示で追加されます。
表示状態で追加する場合は、以下を参考にコーディングしてください。
セルにコメントを表示状態で追加する

複数のセルにコメントを追加する(汎用化)

先述したコメントの追加方法では冗長になってしまいます。
複数のセルにコメントを追加する場合には、プロシージャ化がオススメです!

サンプルコード
Public Sub main()

    ' A1セルにコメントを追加
    Call addComment(Range("A1"), "ここはA1セルです")

    ' A2セルにコメントを追加
    Call addComment(Range("A2"), "ここはA2セルです")
End Sub

Private Sub setComment(ByVal rngObj As Range, ByVal commentStr As String)

    ' コメントの存在チェック
    If TypeName(rngObj.comment) = "Comment" Then

        ' コメントが既に存在する場合、編集する
        rngObj.comment.Text commentStr
    Else

        ' コメントが既に存在する場合、追加する
        rngObj.addComment commentStr
    End If
End Sub

最後に

今回は、セルにコメントを追加する方法について解説しました。

本記事が皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA