Dieser Tipp ist eher für VBA-Beginner gedacht, um ein paar Programmierprinzipien zu veranschaulichen. Denn es gibt in Word 2007 auch die integrierte Funktion Tabellen-Layout, wo man verschiedene voreingestellte Farblayouts nutzen kann. Allerdings enthält unser Tipp noch eine zusätzliche Funktion:
Hier die Funktion für das Einfärben von Zeilen: ' Erzeugen gefärbter Zeilengruppen (alternierend) ' entweder in Anzahl von Zeilen oder auf Grund von Werten in spezieller Spalte ' in Word-Tabellen ' tb: Nummer der Word-Tabelle ' art: Art der Einfärbung ' farbe1: erste Farbe ' farbe2: zweite Farbe ' tit: mit|ohne Einbeziehung von Titelzeilen ' titA: Anzahl der Titelzeilen ' sp: Spaltennummer für Vergleich bei Färbung nach Werten ' vglAnz: alle Vergleichswerte in sp anzeigen oder nicht Public Sub TableColoringAlternateRows(tb As Integer, art As Integer, _ farbe1 As Long, farbe2 As Long, tit As Boolean, titA As Integer, _ sp As Integer, vglAnz As Boolean) Dim specStr As String Dim lastValue As String, aktValue As String Dim cFarbe As Long If tit Then a = titA Else a = 0 lastValue = "" rowAnz = ActiveDocument.Tables(tb).Rows.Count For i = 1 + a To rowAnz With ActiveDocument.Tables(tb).Rows(i).Shading Select Case art Case 1 ' einzeilig If i Mod 2 = titA - 1 Then .BackgroundPatternColor = farbe1 Else .BackgroundPatternColor = farbe2 End If Case 2 ' zweizeilig If i Mod 4 = titA - 1 Or i Mod 4 = titA Then .BackgroundPatternColor = farbe2 Else .BackgroundPatternColor = farbe1 End If Case 3 ' dreizeilig If i Mod 6 = titA + 1 Or i Mod 6 = titA + 2 Or i Mod 6 = titA + 3 Then .BackgroundPatternColor = farbe1 Else .BackgroundPatternColor = farbe2 End If Case 4 ' vierzeilig If i Mod 8 = titA + 1 Or i Mod 8 = titA + 2 Or i Mod 8 = titA + 3 Or i Mod 8 = titA + 4 Then .BackgroundPatternColor = farbe1 Else .BackgroundPatternColor = farbe2 End If Case 5 ' nach Werten specStr = ActiveDocument.Tables(tb).Rows(i).Cells(sp).Range.text specStr = Left(specStr, Len(specStr) - 2) ' einkürzen nötig wegen Tabellenzellen-Notation aktValue = specStr If lastValue = "" Or lastValue <> aktValue Then lastValue = aktValue If cFarbe = farbe1 Then cFarbe = farbe2 Else cFarbe = farbe1 ' Farbwechsel ' If vglAnz = False Then ' ActiveDocument.Tables(tb).Rows(i).Cells(sp).Range.text = "" ' End If End If .BackgroundPatternColor = cFarbe End Select End With DoEvents Next selection.StartOf unit:=wdTable End Sub Dieser Tipp wurde bereits 7.361 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |