--- ---

Here's how to use OLE automation for MS Word and replace some text string in any document:

    use ActiveX, ComObj;

    const
      wdFindContinue = 1;
      wdReplaceOne = 1;
      wdReplaceAll = 2;

    var
      WordApp: Variant;

    begin
      // create OLE object for MS Word application:
      WordApp := CreateOLEObject('Word.Application');
      // load a document from your file
      WordApp.Documents.Open(yourDocFileName);
      WordApp.Selection.Find.ClearFormatting;
      WordApp.Selection.Find.Text := yourStringForSearch;
      WordApp.Selection.Find.Replacement.Text := yourNewStringForReplace;
      WordApp.Selection.Find.Forward := True;
      WordApp.Selection.Find.MatchAllWordForms := False;
      WordApp.Selection.Find.MatchCase := Flase;
      WordApp.Selection.Find.MatchWildcards := False;
      WordApp.Selection.Find.MatchSoundsLike := False;
      WordApp.Selection.Find.MatchWholeWord := False;
      WordApp.Selection.Find.MatchFuzzy := False;
      WordApp.Selection.Find.Wrap := wdFindContinue;
      WordApp.Selection.Find.Format := False;

      WordApp.Selection.Find.Execute(Replace := wdReplaceAll)
    end;

To replace the first occurence of your text only use:

    WordApp.Selection.Find.Execute(Replace := wdReplaceOne);

Instead of:

    WordApp.Selection.Find.Execute(Replace := wdReplaceAll)

To check if text was found then use the Found method:

    if WordApp.Selection.Find.Found then
      {do something}

Save the modified document with:

    WordApp.ActiveDocument.SaveAs(yourDocFileName);

Finally, close the MS Word instance with:

    WordApp.ActiveDocument.Close;
    WordApp.Quit;
    WordApp := Unassigned;

Note
If you want to change a font instead of text, use the Font property of WordApp.Selection.Find.Replacement instead of Text.