![]() |
Re: Word Dokument fernsteuern, Tutorial?
Da bin ich malwieder!
Diesmal frage ich mich, wie ich eine Tabellenzelle auf "Blocksatz" stellen kann. Laut Makro müsste so ähnlich aussehen:
Delphi-Quellcode:
Aber das klappt so nicht. Falls es über WordApp.Selection geht, wie bekomme ich dann den Cursur in diese Zelle?
WordApp.Selection.ParagraphFormat.Alignment:='wdAlignParagraphJustify';
|
Re: Word Dokument fernsteuern, Tutorial?
Neue Frage, neuer Thread!
|
Re: Word Dokument fernsteuern, Tutorial?
Hallo Zusammen,
ich hoffe, mir kann jemand helfen: Ich habe wie beschrieben versucht, die Daten aus einem StringGrid in eine WordTabelle zu exportieren. Auf den ersten Blick scheint es auch zu funktionieren - Word wird gestartet, eine Tabelle wird erstellt und die Spaltenüberschriften eingetragen. Und dann bricht das Programm ab mit dem Hinweis "Das angeforderte Element ist nicht in der Sammlung enthalten." Zugegeben, ich bin nur ein kleiner HobbyBastler, aber vielleicht ist es für Euch ein Klacks und Ihr könnte mir weiterhelfen, obwohl dieser Thread schon so alt ist. Ich habe die Prozedure unten noch einmal angehängt...
Delphi-Quellcode:
Vielen Dank im Voraus.
uses ComObj;
... procedure TProjekt_verlauf.Button1Click(Sender: TObject); var WordApp,NewDoc,WordTable:OLEVariant; iRows,iCols,iGridRows,jGridCols:Integer; begin try // Word Instanz erzeugen WordApp:=CreateOleObject( 'Word.Application'); except // Fehler . . . . Exit; end; // Word anzeigen WordApp.Visible:=True; // Neues Dok einfügen NewDoc:=WordApp.Documents.Add; // Spalten , Reihen ermitteln iCols:=StringGrid.ColCount; iRows:=StringGrid.RowCount; // Tabelle einfügen WordTable:=NewDoc.Tables.Add( WordApp.Selection.Range,iCols,iRows); // Tabelle ausfüllen mit Stringgrid Daten for iGridRows:=1 to iRows do for jGridCols:=1 to iCols do WordTable.Cell( iGridRows,jGridCols).Range.Text:= StringGrid.Cells[jGridCols-1,iGridRows-1]; WordApp:=Unassigned; NewDoc:=Unassigned; WordTable:=Unassigned; end; |
Re: Word Dokument fernsteuern, Tutorial?
@JPSelter:
Die Frage hatte ich mir auch schonmal gestellt, die Lösung ist die Methode "ParagraphFormat" auf Range (und .Range auf .Cell) zu beziehen! Bei mir sieht das dann folgendermaßen aus: T1.Cell(i, j).Range.ParagraphFormat.Alignment := wdAlignParagraphRight; T1 ist meine Tabelle, mit for-Schleifen kann man jetzt alle notwendigen Zellen ansprechen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz