A reply to the post on the Microsoft forums gave some code for a Word macro that works well.
I wonder if the same approach could be done in AppleScript?
Here's the VB code for the Word macro
Sub ChgVoice()
Dim doc As Word.Document, rng As Word.Range
Set doc = ActiveDocument
Set rng = doc.Content
If findNReplace(rng, "he", "you") = False Then MsgBox "he to you", vbExclamation, "Conversion Failed"
If findNReplace(rng, "him", "you") = False Then MsgBox "him to you", vbExclamation, "Conversion Failed"
If findNReplace(rng, "himself", "yourself") = False Then MsgBox "himself to yourself", vbExclamation, "Conversion Failed"
If findNReplace(rng, "his", "your") = False Then MsgBox "his to your", vbExclamation, "Conversion Failed"
If findNReplace(rng, "He", "You") = False Then MsgBox "He to You", vbExclamation, "Conversion Failed"
If findNReplace(rng, "His", "Your") = False Then MsgBox "His to Your", vbExclamation, "Conversion Failed"
If findNReplace(rng, "you seems", "you seem") = False Then MsgBox "you seems to you seem", vbExclamation, "Conversion Failed"
If findNReplace(rng, "You seems", "You seem") = False Then MsgBox "You seems to You seem", vbExclamation, "Conversion Failed"
If findNReplace(rng, "you tends", "you tend") = False Then MsgBox "you tends to you tend", vbExclamation, "Conversion Failed"
If findNReplace(rng, "You tends", "You tend") = False Then MsgBox "You tends to You tend", vbExclamation, "Conversion Failed"
End Sub
Private Function findNReplace(ByRef rng As Word.Range, ByRef fWord As String, rWord As String) As Boolean
On Error GoTo errHandler
Dim iRng As Word.Range
Set iRng = rng
With iRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Format = False
.MatchCase = True
.MatchWholeWord = True
.Wrap = wdFindStop
.Text = fWord
.Replacement.Text = rWord
.Execute Replace:=wdReplaceAll
End With
findNReplace = True
Exit Function
errHandler:
findNReplace = False
End Function