Startseite Themenstart
Excel bietet die Möglichkeit, mit einer Reihe von Farben, die sowohl für die Schrift, für den Zellhintergrund als auch für die Zellrahmen verwendet werden können, in der Tabelle einzelne Bereiche hervorzuheben. Wie so oft im Leben, gilt sicher auch hier der Grundsatz: weniger kann mehr sein.
Die verschieden Farben können in der Tabelle direkt ausgewählt werden, können aber auch über VBA festgelegt werden. Das geschieht über die Farbindizes (1 - 56), diese Nummern haben mit der Farbe direkt nichts zu tun. In der ersten Tabelle habe ich die in der Symbolleiste Formate vorhandenen Farben mit ihren zugehörigen Nummern aufgelistet. Zum besseren Verständnis sind die Farben in der gleichen Reihenfolge abgebildet.
1 53 52 51 49 11 55 56
9 46 12 10 14 5 47 16
3 45 43 50 42 41 13 48
7 44 6 4 8 33 54 15
38 40 36 35 34 37 39 2
Die Farben in der nächsten Tabelle können nur über VBA aufgerufen werden. Wie man leicht erkennen kann, kommen einige dieser Farben auch in der oberen Tabelle vor, haben dort aber eine anderen Farbindex. Den Grund dafür kenne ich nicht.
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
Hier ist eine Gegenüberstellung der gleichen Farben mit den unterschiedlichen Nummern:
Obere Tabelle 11 7 6 8 13 9 14 5 54 34
Untere Tabelle 25 26 27 28 29 30 31 32 18 20
Somit stehen in Excel zwar 56 Standardfarben zur Verfügung, die sich durch die Übereinstimmungen aber auf 46 reduzieren. Allerdings ist auch das nur die "halbe Wahrheit", da es möglich ist, über Extras/Optionen/Farben die Standardfarben zu verändern. Diese Änderungen werden mit der Arbeitsmappe gespeichert.
Eine Beschreibung dazu findet sich hier:
Grundsätzlich ist es möglich, nach den Farbnummern, per VBA Auswertungen in der Tabelle vorzunehmen. Allerdings sind hier einige "Tücken" zu beachten:
  • Schwarzer Text in den Zellen muß nicht die Farbnummer 1 aufweisen. Wenn die Standardeinstellung für die Textfarbe auf Automatisch gesetzt ist, lautet der Wert - 4105. Der gleiche Wert wird ausgegeben, wenn die Textfarbe aus einer bedingten Formatierung resultiert. Beim Zellhintergrund ist dieser Wert - 4142.
  • Wird über bestimmte Zellbereiche eine Formatierung der Schriftfarbe vorgenommen, wird über den entsprechenden VBA-Befehl auch eine Textfarbe ausgelesen, wenn in den betreffenden Zellen gar kein Text steht. Somit ist es nicht möglich, auf diesem Weg gefüllte Zellen zu ermitteln.
  • Hier nun drei Quelltexte zum Einfügen bzw. Auslesen von Farbformaten:

    Zellhintergründe färben:

    Sub Farbe1()
    ' Färbt die Zellen A1 bis A10 mit
    ' den Farbenummern 1 bis 10
    ' excel@klaus-dieter-2000.de
    For r = 1 To 10                 ' Beginn der For To Next Schleife
         With Cells(r, 1).Interior ' Hintergrundformate festlegen
            .ColorIndex = r        ' Hintergrundfarbe festlegen
            .Pattern = xlSolid     ' Hintergrund "vollflächig" färben
        End With                    ' Ende der Hintergrundformatierungen
    Next r                          ' Ende der For To Next Schleife
    End Sub                         ' Ende des Makros
    
    

    Nummern der Hintergrundfarben ermitteln:

    Sub Farbe2()
    ' Liest in den Zellen A1 bis A10 die Farnummern aus
    ' und schreibt sie in die Zellen B1 bis B10
    For r = 1 To 10                                     ' Beginn der For To Next Schleife
        Cells(r, 2) = Cells(r, 1).Interior.ColorIndex   ' Hintergrundfarbe auslesen und schreiben
    Next r                                              ' Ende der For To Next Schleife
    End Sub                                             ' Ende des Makros
    
    

    Beispiel für Schriftformate:

    Im Downloadbereich befindet eine Mustertabelle mit den lauffähigen Makros aus den Beispielen. Die Makros können aber auch direkt von der Seite kopiert werden.
    >Neue Excelversionen:Da sich hinsichtlich der Farben ab Excel 2007 sehr viel geändert hat, gibt es hier eine spezielle Beschreibung.