#DEFINE wdReplaceNone 0 #DEFINE wdReplaceOne 1 #DEFINE wdReplaceAll 2 Local lcDocument lcDocument = 'c:\myPath\myDoc.doc' * Replacement settings Local Array arrReplace[2,2] arrReplace[1,1] = 'FindMe' arrReplace[1,2] = 'ReplaceWithMe' arrReplace[2,1] = 'SearchMeToo' arrReplace[2,2] = 'ReplaceWithAnother' Local oWord As 'Word.Application' oWord = Createobject('Word.Application') With oWord .Documents.Open(lcDocument) With .ActiveDocument For Each myStoryRange In .StoryRanges ReplaceInRange( myStoryRange, @arrReplace ) Endfor myStoryRange = .Null. EndWith .Visible = .t. .Activate Endwith Function ReplaceInRange Lparameters toRange, taReplacements Local ix For ix=1 To Alen(taReplacements,1) toRange.Find.Execute(taReplacements[ix,1], ; .F., .T.,,,,,,, taReplacements[ix,2], wdReplaceAll) EndforPS: Just for headers you might use :