1. I thought you determined that wdColorAutomatic was no good? So your second select case seems like it won't be doing what you want.

2. Your red text, I think, needs to use either the custom function I wrote (not really) OR the microsoft function Greg shows... .SelectContentControlsByTag.

3. This logic structure kind of makes me confused, although I realize this is the template Greg gave you. However, I think it is easier to understand a routine if you only use a particular logic structure a single time (at the same indent level).

Having two different Select Case CC.Tag structures, one nested inside a If .ShowingPlaceholderText construct makes it rapidly more difficult to understand what's going on as your project gets more complicated (as it is).

I would suggest adjusting this to go through the Select Case once, and then just deal with each control (and what you want to do with it) as you need. Or starting with the .ShowingPlaceholderText If statement, and nesting the select cases. This may result in some duplicated code. If too much of that duplicated code shows up-- you know it's a good time to modularize and make your own function.

But I think, honestly, you're just getting lost in a forest of logical constructs

You've got two "main" logic checks you want to deal with: 1) the .Tag property (for identifying "special" controls from the "normal" controls) and 2) the .ShowingPlaceholderText value.

I think your routine should be (in the big picture way) structured in such a way as to make one of those two primary.

Option 1:
[vba]
Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
Select Case CC.Tag
Case 1
If CC.ShowingPlaceholderText Then
Else
End If
Case 2
If CC.ShowingPlaceholderText Then
Else
End If
Case Else
If CC.ShowingPlaceholderText Then
Else
End If
End Select
End Sub
[/vba] Option 2:
[vba]
Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
If CC.ShowingPlaceholderText Then
Select Case CC.Tag
Case 1
Case 2
Case Else
End Select
Else
Select Case CC.Tag
Case 1
Case 2
Case Else
End Select
End If
End Sub
[/vba] Having the two structures somewhat mixed and matched is simply causing confusion (in my humble opinion).