Excel VBA – Wie Sie Hex Farbencode in RGB Umwandeln
In diesem Beitrag zeige ich Ihnen, wie Sie mit VBA einen hexadezimalen Farbencode in RGB umwandeln können.
Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Das RGB-Modell bildet Farben durch das Mischen von Rot, Grün und Blau. Dabei kann jede der drei Farben einen Wert von 0 bis 255 annehmen. Null bedeutet, dass die Farbe überhaupt nicht vorhanden ist, wohingegen bei 255 der Farbanteil voll vorhanden ist.
So steht die RGB Darstellung (0,0,0) für schwarz, da weder Rot noch Grün oder Blau vorhanden ist. RGB (255, 0, 0) steht für rot, RGB (0, 255, 0) für grün und RGB (0, 0, 255) für blau. RGB (255, 255, 255) würde weiß ergeben, da man die Farben Rot, Grün und Blau mischt.
In der Hexadezimaldarstellung werden die Ziffern 0 bis 9 sowie die Buchstaben A bis F genutzt, um den Wert eines Bytes zu speichern. Dabei repräsentieren jeweils zwei Zeichen den Wert eines Bytes. 00 würde 0 bedeutet, während FF für 255 steht. Diese Schreibweise wird vor allem im Webdesign verwendet, um Farben darzustellen. Schwarz wird als 000000 (0,0,0) dargestellt und weiß als FFFFFF (255, 255, 255).
Da RGB wohl für die meisten Menschen einfacher zu lesen ist, zeige ich Ihnen, wie Sie mithilfe von VBA Hex Werte in RGB umwandeln können. Dazu legen wir zunächst ein neues Makro an.
Anschließend definieren wir Variablen für Rot, Grün und Blau Anteile als Byte sowie eine String-Konstante für den Hex Wert. Der Byte-Datentyp ist der kleinste Datenspeicher in VBA. Da er nur ein Byte lang ist, kann er vorzeichenlose Zahlen zwischen 0 und 255 speichern.
Sub HexToRgb()
Dim strHex As String
Dim bytRot As Byte
Dim bytGruen As Byte
Dim bytBlau As Byte
strHex = "1481BA"
End Sub
111 VBA Makros die Ihr Leben leichter machen
Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.
Nun nutzen wir die Funktion CByte, um den Hexwert in Byte zu konvertieren. Um VBA klarzumachen, dass es sich um eine Hexadezimaldarstellung handelt, setzen wir „&H“ vor den eigentlichen Hexadezimalwert. Die ersten zwei Zeichen stehen für Rot-, die nächsten zwei für Grün- und die letzten zwei für Blauanteil. Diese lesen wir über Left, Mid und Right Funktionen aus.
Sub HexToRgb()
Dim strHex As String
Dim bytRot As Byte
Dim bytGruen As Byte
Dim bytBlau As Byte
strHex = "1481BA"
'Farbanteile extrahieren
bytRot = CByte("&H" & Left(strHex, 2))
bytGruen = CByte("&H" & Mid(strHex, 3, 2))
bytBlau = CByte("&H" & Right(strHex, 2))
End Sub
Schließlich geben wir die Ergebnisse in der Tabelle aus.
Das komplette Makro sieht also wie folgt aus:
Sub HexToRgb()
Dim strHex As String
Dim bytRot As Byte
Dim bytGruen As Byte
Dim bytBlau As Byte
strHex = "1481BA"
'Farbanteile extrahieren
bytRot = CByte("&H" & Left(strHex, 2))
bytGruen = CByte("&H" & Mid(strHex, 3, 2))
bytBlau = CByte("&H" & Right(strHex, 2))
'Farbanteile anzeigen
With Tabelle1
.Range("A1") = "Rotanteil ist " & bytRot
.Range("A2") = "Grünanteil ist " & bytGruen
.Range("A3") = "Blauanteil ist " & bytBlau
'Hintergrundfarbe setzen
.Range("A4").Interior.Color = RGB(bytRot, bytGruen, bytBlau)
End With
End Sub
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.
Beeindrucke deinen Chef mit coolen Excel Tricks!
- Lasse dich von deinen Kollegen nicht abhängen!
- Spare Zeit und nutze diese für angenehmere Dinge
- Steigere deine Produktivität und Effizienz
- Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
- Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!