Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Заменить текст в документе Word


uses
  ComObj; 

// Replace Flags 
type 
  TWordReplaceFlags = set of (wrfReplaceAll, wrfMatchCase,
  wrfMatchWildcards);

function Word_StringReplace(ADocument: TFileName; SearchString,
ReplaceString: string; Flags: TWordReplaceFlags): Boolean;
const 
  wdFindContinue = 1; 
  wdReplaceOne = 1; 
  wdReplaceAll = 2; 
  wdDoNotSaveChanges = 0; 
var 
  WordApp: OLEVariant; 
begin 
  Result := False; 

  { Check if file exists } 
  if not FileExists(ADocument) then 
  begin 
    ShowMessage('Specified Document not found.'); 
    Exit; 
  end; 

  { Create the OLE Object } 
  try 
    WordApp := CreateOLEObject('Word.Application'); 
  except 
    on E: Exception do 
    begin 
      E.Message := 'Word is not available.'; 
      raise; 
    end; 
  end; 

  try 
    { Hide Word } 
    WordApp.Visible := False; 
    { Open the document } 
    WordApp.Documents.Open(ADocument); 
    { Initialize parameters} 
    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; 
    { Perform the search} 
    if wrfReplaceAll in Flags then 
      WordApp.Selection.Find.Execute(Replace := wdReplaceAll) 
    else 
      WordApp.Selection.Find.Execute(Replace := wdReplaceOne); 
    { Save word } 
    WordApp.ActiveDocument.SaveAs(ADocument); 
    { Assume that successful } 
    Result := True; 
    { Close the document } 
    WordApp.ActiveDocument.Close(wdDoNotSaveChanges); 
  finally 
    { Quit Word } 
    WordApp.Quit; 
    WordApp := Unassigned; 
  end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Word_StringReplace('C:\Test.doc','Old String','New String',
  [wrfReplaceAll]); 
end;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay