指定した単体セルにコメントを追加します。コメントを追加すると、Rangeオブジェクトの下位オブジェクトであるCommentオブジェクトが生成されますので、書式などの設定は、Commentオブジェクトに対して行ってください。
構文 Object.AddComment(Text)
設定項目 内容
Object Rangeオブジェクト
Text 追加するコメントのテキストを指定します [省略可能]
次のサンプルは、セル範囲A2〜A5に自分のセルのアドレスをコメントとして追加するものです。
●サンプル1●
Sub AddCommentSamp1()
Dim c As Range
For Each c In Range("A2:A5") '---(1)
c.AddComment Text:=c.Address
Next c
End Sub
コメントの追加は単体のセルに対してしか実行できないため、(1)のようにFor...Eachステートメントを使って、個々のセルに対して追加を行っています。
この方法でコメントを追加したのでは、結果の画面を見てわかるように、常にコメントが表示された状態になります。普段はコメントがあることを知らせるマークだけ表示させておく場合には、CommentオブジェクトのVisibleプロパティにFalseを設定します。
そういったコメントの書式設定までも一度に行うには、次のように記述します。
●サンプル2●
Sub AddCommentSamp2()
Dim c As Range
For Each c In Range("A2:A5")
c.AddComment '---オブジェクトだけ作成する
With c.Comment
.Text Text:=c.Address '---Textメソッドでテキスト指定
.Visible = False '---表示しないようにする
.Shape.AutoShapeType = msoShapeExplosion1 '---コメントの形を装飾
End With
Next c
End Sub
ここでは解説しませんが、Commentオブジジェクトにも多数のプロパティ、メソッドが用意されていますので、VBAならではの柔軟なコメントの操作も可能です。
なお、セルに追加したコメントを削除するには、
Range("A2:A5").ClearComments
と記述してください。削除の場合には、複数のセルでも一度に処理可能です。
削除の場合には、複数のセルでも一度に処理可能です。サンプル3で実行を確認してください。
●サンプル3●
Sub AddCommentSamp3()
MsgBox "セルA2〜A5のコメントを削除します", vbInformation
Range("A2:A5").ClearComments
End Sub