As a side barb... While I can offer no help with the "individual characters"
portion, the 3 condition limit with conditional formatting can possibly be
worked around via a lookup table. I've used the following technique to allow
users to change series names & colors on a group of locked charts.
An protected lookup table contains three columns: "Index", "Series Name" &
"Color". The cells for "Series Name" & "Color" are unlocked and the user is
instructed to change the "Series Name" to the desired text for each series name
and to manually change the cell fill color for the "Color" cell to the desired
color. When the code is executed, a Vlookup of "Index" reads/changes desired
"Series Name", and also sets the series color to match the Interior.ColorIndex
property of "Color".
If the "conditions" can be defined and assigned an "Index", the above technique
might provide an easily customizable method to conditionally format according to
an unlimited number of conditions.