Since you want to format only some of the characters inside the cell, you could use a regular expression (regexp) instead of conditional formatting.
Read this for an excellent how-to by user Portland Runner
.
Also, look at user the answer from brettdj
in this, who fumbled out how to only format parts of the cell value.
As for your task:
Sub FormatMyApples()
' Format keywords that are NOT wrapped in single quotes
FormatRegExpItalic _
"[^'](Olea europaea|cuspidata|Malus domestica|Golden Delicious)[^']" _
, ActiveSheet.UsedRange
End Sub
And here's sub for the actual formatting
Private Sub FormatRegExpItalic( _
ByVal pattern As String, ByRef range As Variant)
Dim RegMC As Object
Dim RegM As Object
Dim cell As Object
With CreateObject("vbscript.regexp")
.Global = True
.IgnoreCase = True
.pattern = pattern
For Each cell In range
If .test(cell.Value) Then
Set RegMC = .Execute(cell.Value)
For Each RegM In RegMC
cell.Characters(RegM.FirstIndex + 1, RegM.Length).Font.FontStyle = "Italic"
Next
End If
Next cell
End With
End Sub