After a bit of consideration, to handle "edge" conditions, and future changes...
On a hidden sheet, start a list of all "special" words in column A, make all them UPPERCASE.
In column B pace some "action" notes. I only see the need for three + 1 notes: Upper, Lower, Delete, and a replacement Word for special cases like CamelCase.
Special Words
|
Action To Take |
|
function results |
TODAY |
Upper |
|
Today |
TOMORROW |
Lower |
|
tomorrow |
NEXTWEEK |
NextWeek |
|
NextWeek |
NEVER |
Delete |
|
|
|
|
|
|
|
|
|
|
Now, to borrow a bit of p45cal's code
Set Specials = Sheets("Hidden"???).Range("A1").CurrentRegion.Value
For Each cll In Selection.Cells
xx = Split(cll.Value)
For i = LBound(xx) To UBound(xx)
For j = LBound(Specials) + 1 to Ubound(specials) '+1 = Skip The headers in Specials
If UCase(xx(i)) = Specials(j, 1) Then
Select Case Specials(j, 2)
Case "Upper"
'Your code here to Make xx(i) ProperCase
Case "Lower"
'your code here to Make xx(i) Lower Case
Case "Delete"
'your code here to delete that word (plus one space)
Case Else
'Your code to Make xx(i) = Specials(j, 2)
End Select
Exit For ' There can be only one for each xx(i)
End If
Next j
Next i
Next cll