Changing Comment Color for a Single User

by Allen Wyatt
(last updated April 2, 2013)

3

Mikki is looking for a way to change the default color on worksheet comments so that she can tell her comments apart from comments made by other people.

When you add a comment to a cell in a worksheet, Excel allows you to change the formatting used for that comment. Once the comment is created, follow these steps:

  1. Right-click on the cell and choose Edit Comment from the Context menu. This places the insertion point within the comment where you can type more information, if desired.
  2. Right-click on the comment's border and select Format Comment from the resulting Context menu. Excel displays the Format Comment dialog box.
  3. Use the controls in the dialog box to change how you want the comment to appear.
  4. Click OK.

These steps are all fine and good, but they affect only the current comment. If you want to set a default for any comments you add in the future, Excel doesn't remember your formatting and it provides no way to make a change to the defaults. Instead, Excel grabs its default comment formatting from Windows itself. You can modify this by changing the display properties for Windows, specifically the ToolTip display setting. If you modify this, then you have modified how Excel formats your comments. (You've also modified how ToolTips appear in every other program on your system, as well.)

A workaround is to use a macro to insert your comments. The macro can not only insert the comment, but also format it according to your needs. Here's an example of a short macro that will insert a comment for the selected cell and, if the user's name is "Mikki," make the background color turquoise. (The user's name is defined in the setup for Excel.)

Sub AddMyComment()
    Dim sUserName As String
    Dim  addr As String

    sUserName = Application.UserName

    With ActiveCell
        addr = .Address

        If sUserName = "Mikki" Then
            ActiveSheet.Range(addr).AddComment
            Range(addr).Comment.Shape.Select True
            Selection.ShapeRange.Fill.ForeColor.SchemeColor = 41
        Else
            Range(addr).AddComment
        End If
    End With
End Sub

If you already have a worksheet that contains many comments, you might want to look for comments that have the text "Mikki" within them and then change the color of those comments. This macro fits the bill:

Sub ColorMyComments1()
    Dim myCom As Comment

    For Each myCom In ActiveSheet.Comments
    If InStr(myCom.Text, "Mikki") <> 0 Then
        myCom.Shape.Fill.ForeColor.SchemeColor = 41
    End If
    Next myCom
End Sub

Understand that the macro will change the color if the text "Mikki" appears anywhere within the comment text. A slight variation of the macro checks the comment's Author attribute, and if it is set to "Mikki," then it makes the change:

Sub ColorMyComments2()
    Dim myCom As Comment

    For Each myCom In ActiveSheet.Comments
    If myCom.Author = "Mikki" Then
        myCom.Shape.Fill.ForeColor.SchemeColor = 41
    End If
    Next myCom
End Sub

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (12567) applies to Microsoft Excel 2007, 2010, and 2013.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He  is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Table Borders Won't Print

Print a table and you may be surprised if it has no borders. That could be because you actually have the borders turned off. ...

Discover More

New Worksheet Functions in Excel 2007

Every new version of Excel seems to introduce a few new tools you can use in your formulas. Excel 2007 is no different; this ...

Discover More

Two Printed Copies to Different Paper Trays

Many modern printers include multiple paper trays that can be used for different types or colors of paper. Word allows you to ...

Discover More

Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel 2013 Data Analysis and Business Modeling today!

MORE EXCELTIPS (RIBBON)

Moving Comment Background Pictures to Cells

When formatting comments, you can use a graphic as a background for the comment box. If you later want to move this graphic ...

Discover More

Comments Don't Appear when Cell is Pointed To

One way that you can view comments in a worksheet is to have them appear when you hover the mouse pointer over a cell. If ...

Discover More

Adding a Comment to Multiple Cells

Adding a comment to a single cell is easy. What if you want to add the same comment to multiple cells, however? Here are some ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments for this tip:

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is nine minus 3?

2013-07-09 07:08:53

Frank S

Can you modify this macro to change the default comment font size too?


2013-03-25 09:58:49

Duncan Philps-Tate

With a little bit of modification, you can arrange for a different colour for each author that's found. This needs a loop in the Else statement of the If and an array to hold the authors' names. For simplicity I've started from color 40 and limited the upper end to color 52 once more than 12 authors have been found - this is partly for readability in my own scheme. There is an upper limit on SchemeColor of 80 in any case. Your own author name which appears by default when you create a comment is held as a constant edited into the macro.

Here's the important part of the code:
If myCom.Author = sMyAuthor Then
myCom.Shape.Fill.ForeColor.SchemeColor = 40 'myCom.Shape.Fill.ForeColor.SchemeColor + 1
Else
For i = 0 To UBound(myPeople)
If myPeople(i) = myCom.Author Then
myColor = 41 + i
If myColor > 52 Then myColor = 52
bAuthorExists = True
Exit For
End If
Next 'i

If Not bAuthorExists Then
ReDim Preserve myPeople(UBound(myPeople) + 1)
myPeople(UBound(myPeople)) = myCom.Author
End If

myCom.Shape.Fill.ForeColor.SchemeColor = myColor

End If


2013-03-23 10:28:19

Peter Atherton

I hadn't realised that the Author property applied to comments. I think that that will suit Mikki the best. Congratualtions to the op who supplied that.

Peter


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.

Links and Sharing