try
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range, m As Object
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "<<.+?(?=>>)"
        For Each r In Target.Cells
            If .test(r.Value) Then
                r.Font.Bold = False
                r.Font.Italic = False
                For Each m In .Execute(r.Value)
                    With r.Characters(m.firstindex + 3, m.Length - 2).Font
                        .Bold = True
                        .Italic = True
                    End With
                Next
            End If
        Next
    End With
End Sub