Announcement

Collapse
No announcement yet.

Word mit Delphi automatisieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Word mit Delphi automatisieren

    Hallo,

    Ich versuche, ein Programm mit Delphi zu schreiben, dass unter anderem eine Tabelle in Word zeichnet, mit Daten füllt und formatiert. Die Tabelle konnte ich erstellen, und Daten habe ich auch hineingeschrieben. Jetzt möchte ich sie formatieren, und genau damit habe ich Probleme.
    Die Tabelle soll zentriert sein, die Titelleiste hellgelb unterlegt und die Schrift in der Titelleiste soll fett sein.
    Ich habe mir in Word ein Makro aufgenommen und wollte mir diesen Quelltext als Vorbild nehmen, doch die benötigten Methoden gibt es in Delphi nicht.
    Im Moment versuche ich gerade, die Tabelle zu zentrieren. In VBA sieht das folgendermaßen aus:

    <PRE>Selection.Tables(1).Select
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter</PRE>

    In Delphi finde ich jedoch keine Möglichkeit, die Tabelle zu markieren. Ich habe es folgendermaßen versucht:

    <PRE>WordApplication1.Selection.Tables.Select</PRE>

    Allerdings kann ich hier keinen Index angeben, und mit diesem Quelltext geschieht überhaupt nichts.
    Eine weiteres Problem ist die Spaltengröße. Ich möchte, dass die Spalten sich dem Inhalt anpassen. In VBA funktioniert das folgendermaßen:

    <PRE>Selection.Tables(1).AutoFitBehavior (wdAutoFitContent)</PRE>

    Doch auch hier finde ich in Delphi keinerlei Möglichkeit.
    Die Tabelle erstelle ich übrigens mit folgendem Befehl:

    <PRE>WordDocument.Tables.Add(Word.Selection.Rang e, slErgebnis.Count + 1, 5); // slErgebnis ist eine Stringlist </PRE>

    In VBA werden hier noch mehr Parameter übergeben, unter anderem dieses Autofitbehavour. Delphi akzeptiert aber nur diese drei Parameter.

    Ich bin dankbar für jede Hilfe.

  • #2
    Hallo Christopher,

    versuch es mal so:
    <pre>
    wordapplication1.ActiveDocument.Tables.Item(1).Ran ge.ParagraphFormat.Alignment := wdAlignParagraphCenter;

    wordapplication1.ActiveDocument.Tables.Item(1).Aut oFitBehavior(wdAutoFitContent);
    </pre>

    AutoFitBehavior gibt es bei Word97 nicht. Deswegen konnte ich das nicht testen.

    Das "ActiveDocument" kannst Du natürlich auch durch "Documents.Item(Index)" ersetzen.

    Tschau

    Torste

    Comment


    • #3
      Vielen Dank. So funktioniert es. Aber darauf hätte ich eigentlich auch kommen können :

      Comment

      Working...
      X