【Excel VBA】コメント(メモ)を編集する(Text/Visible)

はじめに

今回は、セルのコメント(メモ)を編集する方法について解説します。
コメントの先頭や末尾にコメントを追記する方法や、コメントの表示・非表示を切り替える方法についても併せて掲載しています。
ぜひ最後までお付き合いください!

この記事を読むメリット
  • セルのコメント(メモ)を編集する方法が分かります。
  • セルのコメント(メモ)の表示・非表示を切り替える方法が分かります。
  • コメント編集時に発生するエラーの条件、回避方法が分かります。
  • コピペで使える実践的なサンプルコードを掲載しています。

前提

コメントの定義

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

具体的には以下です。

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

基本情報

Textメソッド

セルにコメントを編集するには、CommentオブジェクトのTextメソッドを使用します。

構文

Range(“A1”).Comment.Text(Text, Start, Overwrite)

緑字は引数です。

引数

#引数必須/任意説明
1Text任意コメントに追加する文字列を指定します。
2Start任意追加する開始位置を指定します。
※省略すると既に入力されているコメントは削除されます。
3Overwrite任意True:既に入力されているコメントを削除し、置換する場合は文字列を追加する。
False:既に入力されているコメントは残し、文字を追加する。
引数 – Textメソッド

Visibleプロパティ

コメントの表示・非表示状態を変更するには、CommentオブジェクトのVisibleメソッドを使用します。

構文

‘ A1セルのコメントを表示状態にする
Range(“A1”).Comment.Visible = True

緑字は引数です。

引数

  • True:表示状態にする
  • False:非表示状態にする

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

コメントの存在チェック

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

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

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

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

サンプルコード

コメントを置換する(エラー回避)

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

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

        ' コメントが存在している場合、コメントの先頭に、日付 + 名前を追加する
        Range("A1").comment.Text Text:="コメント"
    End If
End Sub

コメントの先頭に文字を挿入する

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

    ' コメントの先頭に、日付 + 名前を追加する
    Range("A1").Comment.Text Text:=Format(Date, "yyyy/MM/dd") & "りゅう", Start:=1

    ' コメントを表示状態する
    Range("A1").Comment.Visible = True
End Sub

コメントの先頭に 日付と名前 を挿入する

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

    ' コメントの末尾に、改行と文字列を追加する
    Range("A1").comment.Text _
        Text:=vbCrLf & "Sample", _
        Start:=(Len(Range("A1").comment.Text) + 1)
End Sub

シート内の全コメントに対して先頭に文字を挿入する

サンプルコード
Public Sub editComment()
    Dim comment As comment  ' Commentオブジェクト

    ' シート内のコメント分ループする
    For Each comment In Worksheets("Sheet1").Comments

        ' コメントの先頭に、日付 + 名前を追加する
        comment.Text Text:=Format(Date, "yyyy/MM/dd") & "りゅう", Start:=1
    Next comment
End Sub

最後に

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

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

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

この記事を書いた人

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

コメント

コメントする

CAPTCHA