Olá, Sempre tive esta rotina no delphi e sempre funcionou para o word 2003 , mas como foi instalado o word2007 na maquina ela não esta funcionando corretamente , ela abre o word mas não faz à alteração que foi passada. Por favor que sober como resolve esta situação, desde ja agradeço segue abaixo a rotina.
ADocument = Caminho do documento SearchString = pesquisar o local onde deve ser alterada ReplaceString = informação a ser alterada ReplaceString: string; Flags: TWordReplaceFlags): Boolean; const wdFindContinue = 1; wdReplaceOne = 1; wdReplaceAll = 2; wdDoNotSaveChanges = 0; var WordApp: OLEVariant; begin Result := False; if not FileExists(ADocument) then begin ShowMessage('O Documento '+ADocument+' não foi encontrado!'); Exit; end; try WordApp := CreateOLEObject('Word.Application'); except on E: Exception do begin E.Message := 'Instale o Microsoft Word!'; raise; end; end; try WordApp.Visible := False; WordApp.Documents.Open(ADocument); WordApp.Selection.Find.ClearFormatting; WordApp.Selection.Find.Text := SearchString; WordApp.Selection.Find.Replacement.Text := ReplaceString; WordApp.Selection.Find.Forward := True; WordApp.Selection.Find.Wrap := wdFindContinue; WordApp.Selection.Find.Format := False; WordApp.Selection.Find.MatchCase := wrfMatchCase in Flags; WordApp.Selection.Find.MatchWholeWord := False; WordApp.Selection.Find.MatchWildcards := wrfMatchWildcards in Flags; WordApp.Selection.Find.MatchSoundsLike := False; WordApp.Selection.Find.MatchAllWordForms := False; if wrfReplaceAll in Flags then WordApp.Selection.Find.Execute(Replace := wdReplaceAll) else WordApp.Selection.Find.Execute(Replace := wdReplaceOne); WordApp.ActiveDocument.SaveAs(ADocument); Result := True; WordApp.ActiveDocument.Close(wdDoNotSaveChanges); finally WordApp.Quit; WordApp := Unassigned; end; end; Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]