Anzeige
Archiv - Navigation
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Word-Makro für Spaltenbreite

Word-Makro für Spaltenbreite
04.06.2008 17:07:00
Mirko
Hallo liebe VBA-Experten!
Ich weiß nicht ob Ihr "Excelianer" mir auch bei einem WORD Problem helfen könnt, aber ich versuch's mal. Ich habe eine einspaltige WORD-Tabelle mit zig Zeilen. In jeder Zeile steht ein Wert (z.B. 24,8). Nun benötige ich ein Makro, das den Inhalt jeder Zelle (bzw. Zeile) ausliest und die Breite der Spalte auf genau diesen Wert ändert (um bei dem Bsp. zu bleiben: die Spaltenbreite der Zelle, in der 24,8 steht, soll dann auch 24,8 cm breit sein).
Vielen Dank im voraus für jeden Tip und alle Bemühungen.
Mirko

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word-Makro für Spaltenbreite
05.06.2008 05:38:29
fcs
Hallo Mirko,
machen kann man ja vieles, aber wozu soll dass gut sein?
Histogramme oder Balkendiagramme sollte man schon besser in Excel oder einem anderen geeigneten Programm erstellen und dann in Word einbetten.
Ansonsten probiere dein Glück mit dem folgenden Makro. Cursor in Tabelle positionieren, dann Makro starten.
Gruß
Franz

Sub Spaltenbreite()
' Spaltenbreite - Erstellt mit Word 97
' Ändert die Breite der  1. Zelle jeder Tabellenzeile entsprechend _
dem eingetragenen Zahlenwert.
Dim objTabelle As Table, objRow As Row, sngBreite As Single, objZelle As Cell
Const sngBreiteMax As Single = 26 'max. Spaltenbreite in cm z.B. bei A4 Querformat
'prüfen, ob Cursor in Tabelle positioniert ist
If Selection.Information(wdEndOfRangeColumnNumber) > 0 Then
'Tabellenobjekt zuweisen
Set objTabelle = Selection.Tables(1)
For Each objRow In objTabelle.Rows
Set objZelle = objRow.Cells(1)
With objZelle
'Prüfen, ob Zellinhalt nummerisch
If IsNumeric(Left(.Range.Text, Len(.Range.Text) - 2)) Then
'Zahlenwert einlesen
sngBreite = VBA.CSng(Left(.Range.Text, Len(.Range.Text) - 2))
'ggf Breite begrenzen
If sngBreite > sngBreiteMax Then sngBreite = sngBreiteMax
.SetWidth columnwidth:=CentimetersToPoints(sngBreite), Rulerstyle:=wdAdjustNone
End If
End With
Next
Else
MsgBox "Bitte Cursor vor Start des Makros in Tabelle positionieren!"
End If
End Sub


Anzeige
AW: Word-Makro für Spaltenbreite
05.06.2008 10:01:00
Mirko
Hallo Franz,
vielen, vielen Dank für das Makro! Klappt wunderbar und ist genau das, was ich gesucht habe.
Nur zur Erklärung wofür ich das brauch: Ich bastel mir gerade eine Zeitleiste auf denen Persönlichkeiten und Ergeignisse abgebildet werden sollen. Die Länge der Spalten entspricht dabei dem Alter einer Person bzw. der Dauer eines Ereignisses.
Noch mal 1000 Dank! Tolles FORUM!!!!!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge