Не претендую на оригинальность, но раз других идей нет то..
Public Function StrReplaceFormat(str As String)
Dim strArr As Variant
Dim strArrW As Variant
Dim str_itog As String
Dim stfindOk As String
Dim strfindWOk As String
Dim strfind
Dim strfindW
str_itog = ""
If InStr(str, "{") > 0 And InStrRev(str, "}") > 0 Then
str = Replace(str, "{", "")
str = Replace(str, "}", "")
str = Replace(str, "\P", "")
strArr = Split(str, ";")
stfindOk = ""
For Each strfind In strArr
If InStr(strfind, "\C") = 0 _
And InStr(strfind, "\T") = 0 _
And InStr(strfind, "\f") = 0 _
And InStr(strfind, "\F") = 0 Then
stfindOk = strfind
If InStr(stfindOk, "\W") > 0 Then
strArrW = Split(stfindOk, " ")
strfindWOk = ""
For Each strfindW In strArrW
If InStr(strfindW, "\W") = 0 Then
strfindWOk = strfindWOk + " " + strfindW
End If
Next strfindW
stfindOk = strfindWOk
End If
str_itog = str_itog + " " + stfindOk
End If
Next strfind
Else
str_itog = str
End If
StrReplaceFormatColor = str_itog
End Function