...automate Word with OLE?

Author: Simon Grossenbacher
Homepage: http://www.swissdelphicenter.ch

Category: Objects/ActiveX

uses
  
comobj;

procedure TForm1.Button1Click(Sender: TObject);
var
  
Word: OLEVariant;
begin
  try
    
Word := CreateOleObject('Word.Application');
  except
    
ShowMessage('Cannot start Word !');
    Exit;
  end;
  // Show Word
  
Word.Visible := True;
  // Add a new Document
  
Word.Documents.Add;
  if Word.ActiveWindow.View.SplitSpecial <> 0 then
    
Word.ActiveWindow.Panes[2].Close;
  if (Word.ActiveWindow.ActivePane.View.type = 1) or
    
(Word.ActiveWindow.ActivePane.View.type = 2) or
    
(Word.ActiveWindow.ActivePane.View.type = 5) then
    
Word.ActiveWindow.ActivePane.View.type := 3;
  Word.ActiveWindow.ActivePane.View.SeekView := 9;

  Word.Selection.Font.Name     := 'Times New Roman';
  Word.Selection.Font.Size     := 12;
  Word.Selection.Font.Bold     := True;
  Word.Selection.ParagraphFormat.Alignment := 1;
  Word.Selection.TypeText(Text :=
    'Kohlenhandel Brikett-GmbH & Co.-KG. - Holzweg 16 - 54633 Steinhausen');

  if Word.Selection.HeaderFooter.IsHeader = True then
    
Word.ActiveWindow.ActivePane.View.SeekView := 10
  else
    
Word.ActiveWindow.ActivePane.View.SeekView := 9;
  Word.Selection.TypeText(Text :=
    'Bankverbindung: Stadtsparkasse Steinhausen BLZ 123456789   KtoNr. 782972393243');
  Word.ActiveWindow.ActivePane.View.SeekView := 0;
  Word.Selection.TypeText(Text := Edit2.Text + ' ' + edit1.Text);
  Word.Selection.TypeParagraph;
  Word.Selection.TypeText(Text := edit3.Text);
  Word.Selection.TypeParagraph;
  Word.Selection.TypeParagraph;
  Word.Selection.Font.Name := 'Times New Roman';
  Word.Selection.Font.Size := 12;
  Word.Selection.Font.Bold := True;

  Word.Selection.TypeText(Text := edit4.Text + ' ' + edit5.Text);
  Word.Selection.TypeParagraph;
  Word.Selection.TypeParagraph;
  Word.Selection.TypeParagraph;
  Word.Selection.TypeParagraph;
  Word.Selection.Font.Name     := 'Arial';
  Word.Selection.Font.Size     := 14;
  Word.Selection.Font.Bold     := True;
  Word.Selection.TypeText(Text := Combobox1.Text);
  Word.Selection.TypeParagraph;
  Word.Selection.TypeParagraph;
  Word.Selection.TypeParagraph;
  Word.Selection.Font.Name := 'Times New Roman';
  Word.Selection.Font.Size := 12;
  Word.Selection.Font.Bold := True;
  if radiogroup1.ItemIndex = 0 then
    
Word.Selection.TypeText(Text := 'Sehr geehrter Herr ' + edit1.Text)
  else
    
Word.Selection.TypeText(Text := 'Sehr geehrte Frau ' + edit1.Text);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base