Word Tabelle formatieren

  • Hallo liebes Forum
    Wie kann ich denn eine Tabelle, die ich per _Word_DocTableWrite in ein Dokument eingefügt habe formatieren?
    Ich möchte gerne Funktionen oder Objekteigenschaften nutzen, die mir die Tabelle an Inhalt und Seitenbreite anpassen (AutoFit, AutoFormat) und ich möchte gerne Rahmen für die Tabelle definieren.
    Leider habe ich keine Ahnung, wie ich den Kollegen Word dazu bekomme, das auch umzusetzen und meine Google Suche war nicht erfolgreich..

    Kann mir da bitte jemand einen Tipp geben?
    Lieben Dank :)

  • Hallo @lloid und

    ich vermute leider, dass das nicht geht.

    Die Hilfedatei sagt dazu:

    AutoIt
    #include <Word.au3>
    _Word_DocTableWrite ( $oRange, ByRef $aArray [, $iIndexBase = Default [, $sDelimiter = Default]] )

    Parameters

    $oRange Word range object where the table should be inserted
    $aArray one or two-dimensional array to be converted to a table.
    Can be zero or 1-based
    $iIndexBase [optional] Can be 0 or 1 and specifies if the array starts with row 0 or 1 (default = 1)
    $sDelimiter [optional] Specifies the character used to separate text into cells (default = @TAB)


    Folgerung:
    - $oRange definiert die Position
    - $aArray definiert die Tabelle

    Bsp.:
    Dim $table[3] ; Tabelle mit 4 Spalten (0, 1, 2, 3)

    $table[0] = "Spalte 1"
    $table[1] = "Spalte 2"
    $table[2] = "Spalte 3"
    $table[3] = "Spalte 4"

    - $iIndexBase = 0 (weil das Array ja mit 0 startet)
    - $sDelimiter = @TAB (es soll ja in verschiedene Spalten, denke ich... anders verstehe ich das nicht :) )

    Anhanddessen bin ich der Meinung, dass diese Wordfunktion nur für Klartext gedacht ist. Ob es andere Möglichkeiten gibt, bezweifle ich, wenn ich die UDF-Liste zu Word ansehe. Allgemein komme ich mit den Word-Funktionen nicht besonders klar...

    Warte aber vielleicht lieber eine Experten-Antwort ab, da mein Kenntnisstand über AutoIt zwar immer mehr zunimmt, aber noch nicht vollständig "ausgereift" ist. :)

    LG
    olfibits

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  • Also mit einer AutoIt Funktion geht das meines Wissens nach nicht, allerdings gibt _Word_DocTableWrite ein Table-Objekt zurück, welches du ansprechen kannst.

    AutoIt
    $oTable = _Word_DocTableWrite($oRange, $asArray, 0)
    $oTable.Borders.Enable = True

    Sowas kannst du beispielsweise benutzen um der Tabelle einen Rahmen zu geben. Da ich mich aber leider mit den ganzen Methoden und Eigenschaften nicht auskenne kann ich darüber hinaus nicht viel weiter helfen.

    Hier hast du aber den msdn Link, vielleicht wirst du ja schlau draus. :D

  • So isses.
    Die Word UDF (gilt auch für Excel, Outlook etc.) stellt Basisfunktionen zur Verfügung. Danach muss das entsprechende Objektmodell direkt bemüht werden (ein UDF ist nur ein Wrapper für die entsprechenden Methoden und Properties).

  • Die möglichen Werte für AutoIt findest Du hier: https://msdn.microsoft.com/de-de/library/office/ff844856.aspx