Pimp your comment boxes [because it is Friday]
Excel comment boxes are a very useful feature, but the comment box look hasn’t changed since slice bread. So Tom, one of our readers, took it upon himself to revamp the comment box. He wrote a simple macro to botox, smoothen and color the comment box. It is a fun and simple macro, something that can make a boring spreadsheet friday a little more exciting.
Here is the code:
Sub Comments_Tom()
Dim MyComments As Comment
Dim LArea As Long
For Each MyComments In ActiveSheet.Comments
With MyComments
.Shape.AutoShapeType = msoShapeRoundedRectangle
.Shape.TextFrame.Characters.Font.Name = "Tahoma"
.Shape.TextFrame.Characters.Font.Size = 8
.Shape.TextFrame.Characters.Font.ColorIndex = 2
.Shape.Line.ForeColor.RGB = RGB(0, 0, 0)
.Shape.Line.BackColor.RGB = RGB(255, 255, 255)
.Shape.Fill.Visible = msoTrue
.Shape.Fill.ForeColor.RGB = RGB(58, 82, 184)
.Shape.Fill.OneColorGradient msoGradientDiagonalUp, 1, 0.23
End With
Next 'comment
End SubGive it a try, I am sure you can afford some lipstick and a new pair of shoes for the comment boxes.
Related material on comment boxes:
- Use Data Validation Messages instead of Comment Boxes
- Programming the comment boxes using VBA
- Extract Comment Box Text using Formulas
- Change the shape of cell comments
Special thanks to Tom for sharing the macro with me. Say thanks to him if you loved it as well.
| ||||
|
| ||||
|
Leave a Reply
![]() |
Want to become a Data God? Learn Excel Data Tables | Member of Month and Other Updates | ![]() |



At Chandoo.org, I have one goal, "to make you awesome in excel and charting". This blog is started in 2007 and today has 450+ articles and tutorials on using excel, making better charts. 
11 Responses to “Pimp your comment boxes [because it is Friday]”
This borders on Excel soft-cell…er, soft-core…porn. My favorite kind.
Wow, that is pimp-TASTIC! I have a question, as a VBA n00b: additional comment boxes stay plain unless I “run” the macro. Is there a way to change all comments, going-forward?
hi Chandoo, well, I like the macro approach. For those who don’t like it, there is another way: just add the “draw” toolbar to the shapes toolbar (via Custom etc), click on “edit comment”, click on the auto-shape and then choose “draw” drop-down, –> modify auto-shape –> then you even can have a heart or a banner (I like the horizontal banner in in purple
) . in excel 2007, you have to add this custom menu that you choose via Excel Options –> Custom –> it is called “change/ modify auto-shape”!!!
best,
@Chandoo. Great Post

@Tim : the way the macro is coded, it must be run very time.
@Community: If someone has an idea to perform it when opening an existing excel, it should be nice.
@Community: if someone has some code to revamp the commentboxes on all sheets, please share it.
@Microsoft Excel-progammers: some pimpoptions for the commentboxes should be great.
Cheerio
Tom
For the auto run, please add the codes in workbook:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call Comments_Tom
End Sub
Wow, that was a lot of fun… Thanks Tom!
@Jeff… Now, 5000 people know about your favorite porn…
@Tim … you can write an event to handle the new comments. I wouldnt recommend it as it is really painful. another option is to use the macro suggested by Yukikomi. It will update comments everytime you activate the sheet.
@laguerriere: very cool
@Chandoo … Thanks! This is good stuff. I combined your tip with a tip from Mark O’Brien, then assigned it to a button on Excel 2010′s Quick Access Toolbar, to format comments AS I add them. I also like how Mark’s code saves me the trouble of backspacing my name out of new comments:
Sub AppendToExistingComment()
‘Source: Mark O’Brien at http://www.mrexcel.com/forum/showthread.php?t=57296
Dim oRange As Range
Dim oComment As Comment
Dim sText As String
‘Use object variable to hold range.
Set oRange = ActiveCell
‘Use object variable for comment
Set oComment = oRange.Comment
‘text to be added to the comment box
sText = InputBox(“Type text to be added:”, “APPEND TO COMMENT TEXT”)
If Len(sText) = 0 Then End
‘If Active Cell has a comment then append new text to the end of the comment text
If Not oComment Is Nothing Then
sText = oComment.Text & vbNewLine & sText
oRange.Comment.Delete
End If
‘Add a comment with the contents of sText
oRange.AddComment sText
DoEvents
Comments_Tom
End Sub
Thank you very much for the code, it seems to be working for the most part; I am having a problem however. Once the routine makes the corrections to the comment, the comment becomes invisible. By invisible, I mean that when I highlight my mouse over it, nothing appears. However, when I right click the cell and click ‘edit comment’ then the comment becomes visible and I enter edit mode. Upon clicking out of the comment, it simply vanishes again. I’ve tried to fix this problem by adding a .shape.visible = msoTrue but then every comment is always visible. o_O please advise…
Thank you,
Nick
@Nick- That is because the font color of the comment is white and when you select the color of selection is also white hence you can not see anything. Try to change the color code in the routine to something else. would work
Thanks for that! The code works perfectly!