18. Mai 2016 16:05
Global:
Name DataType Length
FileName Text 250
TemplateName Text 250
Lokal(die Application-Objekte unbedingt als lokale Variablen deklarieren, damit man keine Fehlermeldungen bekommt):
Name DataType Length Subtype
WordApp Automation 'Microsoft Word 14.0 Object Library'.Application
WordDoc Automation 'Microsoft Word 14.0 Object Library'.Document
WordRange Automation 'Microsoft Word 14.0 Object Library'.Range
Textmarke Text 30
TemplateName := 'F:\EureVorlage.dotx';
IF ISCLEAR(WordApp) THEN
IF NOT CREATE(WordApp, FALSE) THEN
ERROR('Konnte keine Word-Instanz erstellen!');
IF NOT EXISTS(TemplateName) THEN
ERROR('Wordvorlage %1 existiert nicht!', TemplateName);
WordDoc := WordApp.Documents.Add(TemplateName);
Textmarke:='ErsteTM';
IF WordDoc.Bookmarks.Exists(Textmarke) THEN BEGIN // Überprüfung, ob es die Textmarke überhaupt gibt
WordRange:=WordDoc.Bookmarks.Item(Textmarke).Range;
WordRange.Text('Hier wird der erste Text übergeben'); // Word überschreibt hierbei die Textmarke
WordDoc.Bookmarks.Add(Textmarke,WordRange); // Textmarke neu erstellen
End;
Textmarke:='ZweiteTM';
IF WordDoc.Bookmarks.Exists(Textmarke) THEN BEGIN
WordRange:=WordDoc.Bookmarks.Item(Textmarke).Range;
WordRange.Text('Hier wird der zweite Text übergeben');
WordDoc.Bookmarks.Add(Textmarke,WordRange);
End;
//...usw...
FileName := STRSUBSTNO('X:\%1.docx','NeueDatei');
WordDoc.SaveAs(FileName);
WordApp.ScreenUpdating(TRUE);
WordApp.Visible := TRUE;
WordApp.Activate;