I'm not a fan of the selection object and I would think you need to be explicit in settintg the direction of the search. There also seems to be a flaw with the No Proofing not catching the first word if it is immediately preceded by a bracket. Try this variation
Code:
Sub MarkParenthesizedItalicsNoProofing()
Dim aRng As Range, aSubRng As Range
Set aRng = ActiveDocument.Range
With aRng.Find
.ClearFormatting
.Text = "\([A-Z][a-z.]@[!\)]@\)"
.MatchWildcards = True
.Forward = True
.Wrap = False
Do While .Execute
Set aSubRng = ActiveDocument.Range(aRng.Start + 1, aRng.End - 1)
aRng.NoProofing = aSubRng.Italic = True
aRng.Collapse wdCollapseEnd
Loop
End With
End Sub