Announcement

Collapse
No announcement yet.

Word und Tabellen formatieren über OLE

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

  • Word und Tabellen formatieren über OLE

    Hilfe, hat es schon mal jemand geschafft, aus Delphi die Spaltenbreite einer Tabelle in Word 8 zu verändern?<br>
    Der folgende Quelltext läuft fehlerfrei bis zur 2. Tabellenspalte.<br>
    word := createoleobject('Word.Application');<br>
    word.visible := true;<br>
    word.documents.add;<br>
    Word.Selection.Tables.Add(Range:=word.Selection.Ra nge, NumRows:=1, NumColumns:=1);<br>
    word.selection.SelectColumn;<br>
    // folgende Zeile wird ausgeführt ...<br>
    word.Selection.cells.setwidth(ColumnWidth:=56.6929 1, RulerStyle:= 0);<br>
    // Neue Spalte anfügen<br>
    word.Selection.InsertColumns;<br>
    // Cursor in neue Spalte<br>
    word.Selection.MoveRight(12);<br>
    // Spalte selektieren (funktioniert auch noch)<br>
    word.selection.SelectColumn;<br>
    // nach der nächsten Zeile kommt: Ausnahmefehler des Servers<br>
    word.Selection.cells.setwidth(ColumnWidth:=24.9449 , RulerStyle:= 0);<br>
    Was mache ich falsch ???


  • #2
    Hallo Frank,

    der folgende Aufruf macht das Gewünschte:

    word.ActiveDocument.Tables.Item(1).Columns.Item(1) .Width := 100;

    Standardmässig wird bei mir die die Maßeinheit mm verwendet. Real-Zahlen können so aber nicht zugewiesen werden.

    Grundsätzlich würde ich auf die Späte-Bindung verzichten und stattdessen die Frühe-Bindung verwenden. Das hat, neben der Performansteigerung, den Vorteil, dass die Programmierhilfe von Delphi verwendet werden kann und dass bereits der Compiler Syntaxfehler erkennt.

    Tschüß

    Torste

    Comment


    • #3
      Hey, Torsten<br><br>
      Vielen Dank für die schnelle und kompetente Hilfe.<br>
      Ich habe die Tabelle im Griff und auch gleich alles <br>
      auf frühe Bindung umgestellt

      Comment

      Working...
      X