Bestimmte Zellen innerhalb einer Wordtabelle rechtsbündig ausrichten

22/03/2009 - 13:49 von Susanne Wenzel | Report spam
Hallo NG,

ich stehe vor einem Ràtsel. Ich möchte in einer Tabelle alle Zellen bis auf
die der ersten Spalte und die der ersten Zeile mit der Ausrichtung
rechtsbündig versehen. Und obwohl der von mir gewünschte Bereich richtig
selektiert wird, werden ab der dritten Zeile auch die Zellen der ersten
Spalte auf rechtsbündig gesetzt, ist das irgendwie erklàrbar, warum sich
Word so verhàlt?

Hier ist mein kleines Makro:
Sub ZellenAusrichtung()
Dim tbl As Word.Table
Dim rng As Word.Range

Set tbl = ActiveDocument.Tables.Add(Selection.Range, 4, 5,
wdWord8TableBehavior, wdAutoFitFixed)

Set rng = ActiveDocument.Range
With rng
.Start = tbl.Columns(2).Cells(2).Range.Start
.End tbl.Columns(tbl.Columns.Count).Cells(tbl.Columns(tbl.Columns.Count).Cells.Count).Range.End
.Select
.ParagraphFormat.Alignment = wdAlignParagraphRight
End With

End Sub

Man kann bestimmt den rng eleganter setzen, aber bei der Zeile rng.Select
wird bei mir zumindest genau der Bereich (= genau die Zellen) markiert, den
ich bearbeiten will, Word aber anscheinend nicht...:-(

Danke fürs Lesen und eventuelle Tips.

Viele Grüße aus dem hohen flachen Norden Deutschlands
Susanne
Office XP, SP3, aktueller Patchstand
Windows 2000, SP4, aktueller Patchstand
KI-TRIPLE 2007
 

Lesen sie die antworten

#1 Helmut Weber
22/03/2009 - 14:14 | Warnen spam
Hallo Susanne,

ich stehe vor einem Ràtsel. Ich möchte in einer Tabelle alle Zellen bis auf
die der ersten Spalte und die der ersten Zeile mit der Ausrichtung
rechtsbündig versehen. Und obwohl der von mir gewünschte Bereich richtig
selektiert wird, werden ab der dritten Zeile auch die Zellen der ersten
Spalte auf rechtsbündig gesetzt, ist das irgendwie erklàrbar, warum sich
Word so verhàlt?



intern ist eine Tabelle eine eindimensionale(!) Folge von Zellen von
Zelle(1) bis Zelle (x). Wenn ein Range von a bis x definiert wird,
schließt der alle Zellen in diesem Range ein. Da mit Selection nur
rechteckige Bereiche markierbar sind, also keine Treppen, hàlt sich
Selection nicht an den definierten Range, sondern nur an die
Eckpunkte. Tut mir leid, eine bessere Definition fàllt mir zur Zeit
nicht ein.
So gehts jedenfalls:

Sub ZellenAusrichtung2()
Dim tbl As Word.Table
Dim rng As Word.Range
Dim oCl As Word.Cell

Set tbl = ActiveDocument.Tables.Add( _
selection.Range, 4, 5, _
wdWord8TableBehavior, wdAutoFitFixed)

Set rng = ActiveDocument.Range
With rng
.start = tbl.Columns(2).Cells(2).Range.start
.End = _
tbl.Columns(tbl.Columns.Count).Cells(tbl.Columns(tbl.Columns.Count).Cells.Count).Range.End
.Select
For Each oCl In selection.Cells
oCl.Range.ParagraphFormat.Alignment = wdAlignParagraphRight
Next
End With

End Sub


Gruß

Helmut Weber, MVP WordVBA

Vista Small Business, Office XP

Ähnliche fragen