Option Explicit
Sub Macro1()
Dim rngCell As Range
Dim i As Long
Application.ScreenUpdating = False
For Each rngCell In Selection
For i = 1 To Len(rngCell)
rngCell.Characters(i, 1).Font.Color = IIf(IsNumeric(Mid(rngCell, i, 1)), vbRed, vbBlack)
Next i
Next rngCell
Application.ScreenUpdating = True
End Sub
That did the trick! Thanks for the help with this.
One question; What do you need the "Option Explicit" before the start of the sub?
There is a far better reason for using Option Explicit than variable declaration efficiency... it will save you from accidentally mistyping a variable name deep within your code. If you do not declare a variable as to its data type, then the first time you use a new variable anywhere within your code, VBA creates it then and there... declaring it as a variant. The major thing Option Explicit saves you from is that "then and there" creation. Here is an example. Assume you do not have Option Explicit activated...Option Explicit forces you to declare all variables as I have done with the two I used for your solution. Without it any undeclared variable(s) will be defined as variants which is the most expensive type of variable in terms of memory which can impact performance.
Hope that helps.