Hallo,
Delphi-Quellcode:
WordApp.Documents.Open2000(FileName, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);
Du öffnest glaube ich damit die Vorlage. Es wird kein neues Dokument anhand der Vorlage erstellt. Da in Word eine Datei nur einmal geöffnet sein kann, wird beim zweiten Versuch die bereits geöffnete verwendet. Es müsste beim
WordApp.Documents
auch ein
Add
geben.
Dokument.ConnectTo(WordApp.ActiveDocument);
Noch ein Tipp, das
ActiveDocument
sollte man nicht benutzt. Unter Umständen kann der Benutzer während der Programmausführung ein anderes Dokument aktivieren. Macht der Benutzer dies zum falschen Zeitpunkt, greift man über
ActiveDocument
auf das Falsche zu. Die Open- und Add-Methoden geben eigentlich das geöffnete/erzeugte Dokument zurück.
Auch auf sowas wie CurrentSelection und Zwischenablage sollte man bei der Word-/Excel-Automation verzichten. Diese Automationen sind nicht die Schnellsten. Vor allem wenn viele Seiten erzeugt werden sollen, kann das eine Weile dauern. Genug Zeit für den Benutzer mal schnell noch mit Verwendung der Zwischenablage eine E-Mail weiter zuschreiben. Der Benutzer macht das:
3. Strg+X
5. Cursor eine Absatz nach unten
8. Strg+V
Und dein Program macht parallel das:
1. CopyToClipboard
2. ChangeCursor
4. PasteFromClipboard
6. SelectNextArea
7. CopyToClipboard
9. ChangeCursor
10. PasteFromClipboard
Die Zahlen geben die Reihenfolge an, wie der Rechner das gerade in diesem Moment abarbeitet. Wenn der Benutzer nicht die Funktion Strg+Z kennt, wird er bestimmt richtig sauer. Vor allem wenn er die ultimative Antwort auf alle Fragen ausgeschnitten hat.
einbeliebigername.