You don't say how the macro is trigger or the user enters the actual comment text.
In a standard code module.
Sub AddMyComment()
Dim objComment As Comment
On Error GoTo ErrAddMyComment
Set objComment = GetComment(ActiveCell)
With objComment.Shape.TextFrame
With .Characters
If Len(.Text) > 0 Then
.Text = .Text & vbNewLine
End If
.Text = .Text & Format(Now(), "dd/mmm/yyyy ") & Application.UserName & vbNewLine
.Text = .Text & "Comment Text"
End With
.AutoSize = True
End With
ErrAddMyComment:
Exit Sub
End Sub
Function GetComment(MyCell As Range) As Comment
On Error Resume Next
Set GetComment = MyCell.Comment
If GetComment Is Nothing Then
Set GetComment = MyCell.AddComment
GetComment.Shape.TextFrame.Characters.Text = ""
End If
Exit Function
End Function
Bookmarks