Search and replace text in a Word document (Views: 29)
Problem/Question/Abstract: How to search and replace text in a Word document Answer: Solve 1: You should use a variant because the Find.Execute method is a bit buggy. Something like this, for example: { ... } var Rnge: OleVariant; { ... } Rnge := Doc.Content; Rnge.Find.Execute('old', Wrap := wdFindContinue, ReplaceWith := 'new', Replace := wdReplaceAll); { ... } Solve 2: { ... } { Create the OLE Object } WordApp := CreateOLEObject('Word.Application'); WordApp.Documents.Open(yourDocFile); WordApp.Selection.Find.ClearFormatting; WordApp.Selection.Find.Text := yourOldStr; WordApp.Selection.Find.Replacement.Text := yourNewStr; WordApp.Selection.Find.Forward := True; WordApp.Selection.Find.Wrap := 1; {wdFindContinue} WordApp.Selection.Find.Format := False; WordApp.Selection.Find.MatchCase := False; WordApp.Selection.Find.MatchWholeWord := False; WordApp.Selection.Find.MatchWildcards := True; WordApp.Selection.Find.MatchSoundsLike := False; WordApp.Selection.Find.MatchAllWordForms := False; WordApp.Selection.Find.Execute(Replace := 2); {wdReplaceAll} {Or as alternative: WordApp.Selection.Find.Execute(Replace := 1); for one replace} WordApp.ActiveDocument.SaveAs(yourNewDocFile); WordApp.Quit; WordApp := Unassigned; { ... } |