Discussion:
Farbcodes / Farbkonstanten unter Excel / VBA
(zu alt für eine Antwort)
Jo
2005-05-12 16:08:44 UTC
Permalink
Moin,

zur Identifikation und Anwendung wären selbstsprechende Farbcodes sehr
praktisch. Sie liegen doch nur als eingebaute Konstanten für
Grundfarben vor (vbBlue usw.), oder?

Gibt es weitergehende Konstanten oder eine Übersicht der Farbcodes mit
Farben?

Gruß Jo
Melanie Breden
2005-05-12 16:15:57 UTC
Permalink
Hallo Jo,
Post by Jo
zur Identifikation und Anwendung wären selbstsprechende Farbcodes sehr
praktisch. Sie liegen doch nur als eingebaute Konstanten für
Grundfarben vor (vbBlue usw.), oder?
Gibt es weitergehende Konstanten oder eine Übersicht der Farbcodes mit
Farben?
alle vorhandenen Farbkonstanten findest du in der Klasse 'ColorConstants'
im Objektkatalog (F2)
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Jo
2005-05-12 16:23:07 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
alle vorhandenen Farbkonstanten findest du in der Klasse
'ColorConstants'
Post by Melanie Breden
im Objektkatalog (F2)
Stimmt, vielen Dank. Das sind jedoch nur 8 für eine Füllfarbe stehen
mindestens 40 (max 56?) Farben zur Verfügung. Auf diese Differenz
bezog sich eigentlich meine Frage.

Gruß Jo
Melanie Breden
2005-05-12 17:09:14 UTC
Permalink
Hallo Jo,
Post by Jo
Post by Melanie Breden
alle vorhandenen Farbkonstanten findest du in der Klasse 'ColorConstants'
im Objektkatalog (F2)
Stimmt, vielen Dank. Das sind jedoch nur 8 für eine Füllfarbe stehen
mindestens 40 (max 56?) Farben zur Verfügung. Auf diese Differenz
bezog sich eigentlich meine Frage.
sorry, dann hatte ich deine Frage falsch verstanden.
Ich dachte, du suchst nur die vorhandenen Farbkonstanten
'vbXX' und nicht die Indexe zu den Farben.
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Jo
2005-05-12 16:39:24 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
alle vorhandenen Farbkonstanten findest du in der Klasse
'ColorConstants'
Post by Melanie Breden
im Objektkatalog (F2)
Das sind spärliche 8, stimmt.
Wo sind die restlichen versteckt? Es sind immerhin 40 im Farbmenü
auswählbar.
Auf diese bezog sich eigentlich meine Frage.

Gruß Jo
Jo
2005-05-12 16:42:13 UTC
Permalink
Wird beantwortet unter:
http://excelabc.de/excel/et/excel.php?Seite=et00026
Post by Jo
Wo sind die restlichen versteckt? Es sind immerhin 40 im Farbmenü
auswählbar.
Auf diese bezog sich eigentlich meine Frage.
Gruß Jo
Thorsten D.
2005-05-12 16:42:53 UTC
Permalink
Post by Jo
Moin,
zur Identifikation und Anwendung wären selbstsprechende Farbcodes sehr
praktisch. Sie liegen doch nur als eingebaute Konstanten für
Grundfarben vor (vbBlue usw.), oder?
Gibt es weitergehende Konstanten oder eine Übersicht der Farbcodes mit
Farben?
Gruß Jo
Hallo Jo,

nimm mal bitte diesen Code und führ ihn aus. Das sollte genau das sein
was du suchst.

Sub FarbenAnsehen()
Dim i As Integer
Dim e As Integer

Sheets("Tabelle1").Activate
e = 1

For i = 1 To 28
Cells(1, i).Interior.ColorIndex = i
Cells(2, i).Value = i
Next i

For i = 29 To 56
Cells(4, e).Interior.ColorIndex = i
Cells(5, e).Value = i
e = e + 1
Next i
End Sub
--
MfG
Thorsten

Für jedes Problem gibt es eine wissenschaftliche und eine einfache Lösung.

E-Mail-Spamming bringt nichts, da nur E-Mails aus dem Kontaktordner
akzeptiert werden.
Jo
2005-05-12 16:52:18 UTC
Permalink
Post by Thorsten D.
nimm mal bitte diesen Code und führ ihn aus. Das sollte genau das sein
was du suchst.
Wow, gute Idee und fixe Reaktion!
Gerade frisch geschrieben, oder? ;-)

Vielen Dank, da hat mein Grips eben wohl mal Pause gemacht ;-)

Gruß Jo
Thorsten D.
2005-05-12 17:00:36 UTC
Permalink
Post by Jo
Wow, gute Idee und fixe Reaktion!
Gerade frisch geschrieben, oder? ;-)
Vielen Dank, da hat mein Grips eben wohl mal Pause gemacht ;-)
Gruß Jo
frisch kopiert ist halb getippt. Für sowas hab ich meine Codesammlung.
Schau ich auch immer wieder rein. Wer merkt sich denn schon den ganzen Kram?
--
MfG
Thorsten

Für jedes Problem gibt es eine wissenschaftliche und eine einfache Lösung.

E-Mail-Spamming bringt nichts, da nur E-Mails aus dem Kontaktordner
akzeptiert werden.
Jo
2005-05-12 17:12:48 UTC
Permalink
Fürs nächste Mal könntest du noch lässiger mit einem 4/5-Zeiler
kommen ;-)

Sub FarbenAnsehen()
Dim ZEILE

For ZEILE = 1 To 56
Cells(ZEILE, 1).Interior.ColorIndex = ZEILE
Cells(ZEILE, 2).Value = ZEILE 'siehe Zeilennr.
Next
End Sub

Danke nochmal!
Thomas Ramel
2005-05-12 20:13:27 UTC
Permalink
Grüezi Jo

Jo schrieb am 12.05.2005
Post by Jo
zur Identifikation und Anwendung wären selbstsprechende Farbcodes sehr
praktisch. Sie liegen doch nur als eingebaute Konstanten für
Grundfarben vor (vbBlue usw.), oder?
Gibt es weitergehende Konstanten oder eine Übersicht der Farbcodes mit
Farben?
Eine Lösung hast Du ja bereits erhalten; ich wollte dich nur gerne noch auf
einen Umstand aufmerksam machen:

Die in Excel vorgegebenen Farben sind nur innerhalb derselben Mappe
zwangsläufig stimmig; sie lassen sich nicht unbedingt 1:1 auf andere Mappen
übertragen.
Die Farbpalette kann durch den Anwender verändert werden um auch den Rest
der >32000 Farben die Windows oder der GraKa-Treiber zur Verfügung stellt
verwenden zu können.
*Gleichzeitig* können *pro Mappe* nur die 56 definierten Farben angezeigt
und verwendet werden. Veränderst du also die Farbe mit Index 1 ist diese
dann an allen Stellen innerhalb der Mappe angepasst worden.
In einer anderen Mappe kann dies wieder unterschiedlich sein.
Daher muss die Farbe mit Index 1 der einen Mappe nicht dieselbe Farbe sein,
wie in einer anderen Mappe.

Soviel zum Farben-Konzept von Excel.


Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Jo
2005-05-12 21:43:03 UTC
Permalink
Post by Thomas Ramel
Soviel zum Farben-Konzept von Excel.
Hallo Thomas,

vielen Dank für den Hinweis am Rande!
Hab ich gleich mal ausprobiert, ist mit dem Colors-Objekt und der RGB
Methode ja ziemlich einfach. Insofern haben ja auch selbstredende
Standard-Farb-Konstanten wenig Sinn, wie ich sie mir vorstellte.

Gibt es zur RGB Methode, die einen Long-Wert zurückgibt, auch eine
Umkehrfunktion, die z.B. aus einem ausgelesenen Long-Wert eines
Farbindex die RGB-Werte extrahieren kann? Hab ich nicht gefunden.
Man kann ja sicher auch selbst mit dem Long jonglieren, wenn man
wüsste, wie er sich zusammensetzt (oder was die RGB-Methode tut)...

Gruß und Tschüß
Jo
Thomas Ramel
2005-05-13 05:53:48 UTC
Permalink
Grüezi Jo

Jo schrieb am 12.05.2005
Post by Jo
Post by Thomas Ramel
Soviel zum Farben-Konzept von Excel.
vielen Dank für den Hinweis am Rande!
Aber gerne doch, den soooooo randständig ist das Konzept ja nicht ;-)
Post by Jo
Hab ich gleich mal ausprobiert, ist mit dem Colors-Objekt und der RGB
Methode ja ziemlich einfach. Insofern haben ja auch selbstredende
Standard-Farb-Konstanten wenig Sinn, wie ich sie mir vorstellte.
Ja, genau - Du kannst dich nicht darauf verlassen, dass dies in anderen
Mappen genauso definiert ist....
Post by Jo
Gibt es zur RGB Methode, die einen Long-Wert zurückgibt, auch eine
Umkehrfunktion, die z.B. aus einem ausgelesenen Long-Wert eines
Farbindex die RGB-Werte extrahieren kann? Hab ich nicht gefunden.
Ich habe mit 'RGB long' als Suchbegriff und '*.de.excel' als Newsgroup hier
gesucht:

http://groups.google.com/advanced_group_search

und bin dann bereits an zweiter Stelle auf den folgenden Thread gestossen:

http://groups.google.com/groups?hl=de&threadm=u0tkmt4ugm0vuvql2dl483tghlatfna0j3%404ax.com


Bedenke aber auch hier, dass Du nur die 56 Werte der *Farbpalette* in
dieser Weise per RGB festlegen kannst.
Tust Du dies für die einzelne Zelle, so wird die dem RGB-Wert am nächsten
liegende Farbe der Farbpalette dargestellt - Excel legt dies nach eigenen
Regeln fest.

Aus der Sub von Frank habe ich eine Function kreiert, die Du gleich im
Tabellenblatt verwenden kannst und die drei Anteile wiedergibt.
Aktiviere in der Zelle, welche die Formel enthält, den Zeilenumbruch, dann
ist die Darstellung auch einigermassen sauber.


Function RGBFarben(rngZelle As Range) As String
Dim lngFarbe As Long
lngFarbe = rngZelle(1).Interior.Color
RGBFarben = "R: " & (lngFarbe And RGB(255, 0, 0)) & Chr(10) & _
"G: " & (lngFarbe And RGB(0, 255, 0)) / 256& & Chr(10) & _
"B: " & (lngFarbe And RGB(0, 0, 255)) / (256& ^ 2)
End Function
Post by Jo
Man kann ja sicher auch selbst mit dem Long jonglieren, wenn man
wüsste, wie er sich zusammensetzt (oder was die RGB-Methode tut)...
Aufgrund der Berechnung von Frank scheint der Long-Wert in einzelne
Bereiche aufgeteilt zu sein, die jeweils einen Farbanteil von RGB
aufnehmen.
Die weiteren Fundstellen der Google-Suche oben führen zu einigen Beiträgen
von Michael Schwimmer, der ähnliches über API und Hex-Berechnungen des
Long-Wertes vornimmt.

Zu den tieferen Hintergründen könnte ev. die folgende Seite hilfreich sein.
Es dreht sich hier zwar um Word, doch ich könnte mir vorstellen, dass
dieselben 'Gesetzmässigkeiten' auch in Excel gelten:

http://mypage.bluewin.ch/reprobst/WordFAQ/Farben.htm#Farben03




Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Loading...