AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Spaltenbreite in Word-Tabelle einstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Spaltenbreite in Word-Tabelle einstellen

Ein Thema von Sidi61 · begonnen am 13. Mai 2016 · letzter Beitrag vom 17. Mai 2016
Antwort Antwort
Sidi61

Registriert seit: 13. Jun 2006
97 Beiträge
 
Delphi XE5 Professional
 
#1

Spaltenbreite in Word-Tabelle einstellen

  Alt 13. Mai 2016, 23:30
Hallo zusammen,

es ist zum verzweifeln, ich versuche schon mehrere Stunden die Spaltenbreiten einer in Word eingefügten Tabelle zu ändern. Ich habe einige Lösungsansätze gefunden, erhalte bei der Ausführung jedoch immer eine Fehlermeldung.

Ein Beispiel dass ich auch hier im Forum gefunden habe ist wie folgt:

WordDoc.Tables.Item(1).Columns.Item(1).SetWidth(20 ,0);

Hier erhalte ich die Fehlermeldung: Die Methode Item wird vom Automatisierungsobjekt nicht unterstützt!

WordDoc ist vom Typ OleVariant und hat folgende Zuweisung:

WordApp := CreateOleObject('Word.Application');
WordDoc := WordApp.ActiveDocument;

Hat jemand eine Idee wo der Fehler liegt? Ich komme da nicht weiter

OK - ist schon spät - der Fehler kommt von einer anderen Stelle im Code - mal sehen ob dann die Spaltenbreiten funktionieren - Zeit fürs Bett

Gruß Sidi61

Geändert von Sidi61 (14. Mai 2016 um 00:31 Uhr)
  Mit Zitat antworten Zitat
Sidi61

Registriert seit: 13. Jun 2006
97 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Spaltenbreite in Word-Tabelle einstellen

  Alt 14. Mai 2016, 18:24
Hallo zusammen,

der Fehler lag tatsächlich in einem anderen Abschnitt des Codes, ist aber auch ein wenig knifflig da die IDE hier wenig Unterstützung bietet.

Also ich kann jetzt eine Tabelle einfügen und auch die Spaltenbreiten einstellen wobei ich hier mit Prozentangaben arbeite da ich die Funktion MillimetersToPoint nicht verwenden konnte - kennt er nicht - ist vielleicht besser so da ich damit gleichzeitig eine Scalierung geschaffen habe.

Delphi-Quellcode:
b := Round(BSeite / 100 * b); //prozentuale Breitenangabe in Punkte umrechnen
WordDoc.Tables.Item(1).Columns.Item(I).SetWidth(b,0);
Nun habe ich jedoch ein anderes Problem - es gibt ja die Möglichkeit an eine vorhandene Tabelle eine Tabellenzeile anzuhängen. Ich mache das wie folgt:

WordDoc.Tables.Item(1).rows.Add(emptyparam);

Seltsamer Weise hängt er beim ersten Aufruf 2 Tabellenzeilen an und bei jedem Weiteren nur eine

Hat jemand eine Idee woran das liegen mag??

Gruß
Sidi61
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Spaltenbreite in Word-Tabelle einstellen

  Alt 14. Mai 2016, 20:32
Mach bitte für ein neues Problem auch einen neuen Thread auf. Das hat ja nichts mehr mit der Breite von Tabellenspalten zu tun.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#4

AW: Spaltenbreite in Word-Tabelle einstellen

  Alt 16. Mai 2016, 12:09
Mach bitte für ein neues Problem auch einen neuen Thread auf. Das hat ja nichts mehr mit der Breite von Tabellenspalten zu tun.
Hallo Luckie,

erst mal schöne Pfingsten.

Gibt es denn nirgends ein Tutorial, wo man ein bischen Word VBA und oder Word VB mit Delphi erlernen kann?
Was ich so im Netz bisher gefunden habe ist zwar schon brauchbar, aber sehr zeitaufwendig. Ich weiß, ich mag es mal wieder bequem, habe aber wirklich nur noch wenig Zeit für meine Hobbys.

Leider gibt es nirgends ein so gutes Forum wie das Hiesige für VB und Delphi.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Spaltenbreite in Word-Tabelle einstellen

  Alt 17. Mai 2016, 09:52
Nun habe ich jedoch ein anderes Problem - es gibt ja die Möglichkeit an eine vorhandene Tabelle eine Tabellenzeile anzuhängen. Ich mache das wie folgt:

WordDoc.Tables.Item(1).rows.Add(emptyparam);
Seltsamer Weise hängt er beim ersten Aufruf 2 Tabellenzeilen an und bei jedem Weiteren nur eine
Ist die Tabelle den vorher leer (ohne Zeile)? Hast du es mal in VBA versucht, wie es dann aussieht?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Spaltenbreite in Word-Tabelle einstellen

  Alt 17. Mai 2016, 11:54
Ist die Tabelle den vorher leer (ohne Zeile)? Hast du es mal in VBA versucht, wie es dann aussieht?
hat er nicht weil der Recorder sich mal wieder von der besten Zickenseite zeigt.
Ich hab da mal was gebastelt:
Code:
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
        3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
        If .Style <> "Tabellenraster" Then
            .Style = "Tabellenraster"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
        .ApplyStyleRowBands = True
        .ApplyStyleColumnBands = False
        .Rows.Add
        .Rows.Add
    End With
Bis auf die beiden .Rows.Add kommt das aus dem Macrorecorder. Da Add als Parameter "BeforeRow" erwartet, kann es durchaus sein, daß "emptyParam" und ein nicht vorhandener Parameter unterschiedliche Ergebnisse erzeugt.
Zitat:
Function Add([BeforeRow]) As Row
Element von Word.Rows
Gruß
K-H

P.S. VBA 7.1 / Word365
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (17. Mai 2016 um 12:00 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz