セルにコメントを追加する(AddCommentメソッド)|Excel VBA |
セルにコメントを追加するには、RangeオブジェクトのAddCommentメソッドを使用します。
構文 Object.AddComment(Text)
設定項目 | 内容 |
---|---|
Object | Rangeオブジェクト |
Text | コメントに表示する文字列を指定する。[省略可能] |
次のコードは、アクティブセルにコメントを追加します。
Sub Sample1()
ActiveCell.AddComment "これはコメントです"
End Sub
コメントの追加は単体のセルに対してしか実行できません。
複数のセルにコメントを追加するには、次のようにループを使って個々のセルに追加します。
Sub Sample2()
Dim c As Range
For Each c In Range("A1:A5")
c.AddComment Date & "更新"
Next c
End Sub
コメントの文字列に複数行を表示したいときは、次のように改行を指定します。
マクロ記録では改行のコードとしてChar(10)が記録されますが、定数vbCrLfでもOKです。
Sub Sample3()
ActiveCell.AddComment Date & vbCrLf & _
"マクロで挿入した" & vbCrLf & "コメントです"
End Sub
AddCommentメソッドは、セルにコメントを追加して、そのコメントを表すCommentオブジェクトを返します。コメントに何らかの設定を行う場合は、このCommentオブジェクトに対して行います。
CommentオブジェクトのVisibleプロパティにTrueを設定すると、コメントを表示した状態になります。Falseを設定すると、セルにコメントがあることを示すインジケータのみを表示した状態になります。
また、Excelの既定ではコメントの形は四角形ですが、次のようにすると吹き出しの形を変更することもできます
Sub Sample4()
With ActiveCell.AddComment("よく確認してください!")
.Shape.AutoShapeType = msoShape8pointStar
.Visible = True
End With
End Sub
セルに追加したコメントを削除するには、RangeオブジェクトのClearCommentsメソッドを使用します。削除の場合は、複数のセルでも一度に処理できます。
また、ClearCommentsメソッドは、コメントがないセルに対して実行してもエラーにはなりません。
Sub Sample5()
MsgBox "セルA1:B50のコメントを削除します", vbInformation
Range("A1:B50").ClearComments
End Sub
コメントの追加では、注意しなければならないことがあります。
それは、すでにコメントがあるセルにAddCommentメソッドを実行するとエラーになるということです。
コメントの有無を調べるには「コメントが追加されているかを判定する(Commentプロパティ)」を参照してください。