#INCLUDE 'wdconst.h' lcDir = getdir() lnDocs = adir(arrDocs,lcDir+'*.doc') lcSearch1 = 'First String to find' lcSearch2 = 'Next String to find' oWord=CREATEobject("Word.Application") With oWord .Options.Pagination = .t. For ix = 1 to lnDocs .Documents.Open(lcDir+arrDocs[ix,1]) .ActiveDocument.ActiveWindow.View.Draft = .f. With .ActiveDocument.Content.Find .ClearFormatting If .Execute(lcSearch1+'^w^p'+lcSearch2,.f.) ; or .Execute(lcSearch1+'^p'+lcSearch2,.f.) ? 'Found in document '+lcDir+arrDocs[ix,1]+; ' at line '+transform(.Parent.Information(wdFirstCharacterLineNumber)) Endif Endwith .ActiveDocument.Close(wdDoNotSaveChanges) Endfor .Quit EndwithThis is not a bulletproof search and line number might change with just layout change. In your case getting the whole content to a string and making search in it might be more correct approach.