Designfarben - auch für Userformen, Controls?

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Designfarben - auch für Userformen, Controls?

#1

Beitrag von thowe »

Hallo & Moin,

Ich habe im Zuge eines aktuellen Projektes mich mit den "Themes" und "ColorSchemes" von Office (korrekt von Office) beschäftigt.

Wenn man Excel (ab 2007) verwendet, werden unter Seitenlayout > Farben diverse Farbthemen (Designfarben) - out of the Box - zur Verfügung gestellt. Man kann auch benutzerdefinierte Farbthemen (Designfarben) erstellen.

Bei den Farbthemen (Designfarben) werden auch Schattierungen zur Verfügung gestellt. Zum Beispiel unter Start > [Schriftart] > Füllfarbe werden 6 Schattierungsgrade angeboten.

Während man in VBA bei Arbeitsblättern auf diese Designfarben zugreifen kann, und benutzerdefinierte Schattierungen mit der Eigenschaft .TintAndShade bestimmen kann habe ich keine Möglichkeit gefunden diese Farbthemen (Designfarben) per default UserFormen und/oder Controls - einfach -zu verwenden. Schon gar nicht Schattierungen (heller,dunkler)

Im Anhang als Idee ein Modul das diverse Funktionen zu diesem Thema zur Verfügung stellt.
modCore_COLORS.zip
(1.7 KiB) Noch nie heruntergeladen
Die Funktion COLORS_GetRGBFromThemeColorIndex gibt in verschiedenen Formen die RGB-Werte eines bestimmten Farbthemas (Designfarbe, auf VBASprech ThemeColor) zurück.

So kann man sich den gesamten RGB-Wert als String: zurückgeben lassen
ohne Prefix [default, bolOptionPrefix =False] jeden Farbwert getrennt durch ein Komma (",").
Output zB 239, 126, 57.
Es kann auch ein Präfix mitausgegeben werden [bolOptionPrefix = True] , dann sieht der Output zum Beispiel wie folgt aus: R=239,G=126,B=57, ebenfalls als String.

Auch jeder Farbkanal kann alleine für sich ausgeben werden. Mit dem zweiten optionale Parameter [strColor AsString] -per derfault ist diese Option auf "A" (Alle Farbkanäle, also R,G,B) eingestellt - zb. mit strColor ="R" wird der erste Farbkanal (Rot) zurückgegeben.

Wer kürzere Funktionen bevorzugt, mit weniger Optionen kann sich beispielsweise die einzelnen Farbkanält mit den Funktionen:
COLORS_GetRGBRedFromThemeColorIndex
COLORS_GetRGBGreenFromThemeColorIndex
COLORS_GetRGBBlueFromThemeColorIndex

begnügen.

Wie man die Funktion COLORS_GetRGBFromThemeColorIndex in Kombination mit einer weiteren Funktion verwenden kann, um beispielsweise einer Userformen eine Schattierung "beizubringen" ist über die Funktion COLORS_TintThemeColor möglich. Das ist ein Sahnehäubchen, ...., nicht?

Ich denke mir das sogar das "darkener" einer Farbe möglich sein wird. Das wird - bald - folgen.

Die Hauptfunktion ist kommentiert.

Viel Spaß und freue mich auf jedwede Rückmeldung, vor allem auf sicherlich mögliche Verbesserungen.

lg
Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag:
d'r Bastler

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste