VBA Tipp: HTML-Colorwert in Long-Farbwert umwandeln

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte einen HTML-Colorwert als Access-Farbwert (Datentyp Long) darstellen.

Lösung

Das geht mit der folgenden Umwandlungsroutine:

Public Function HTMLColorZuFarbe(FarbWert As String) As Long
 
   'Wandelt einen HTML-Farbwert in einen Long-Farbwert um
   'Quelle: www.dbwiki.net oder www.dbwiki.de
 
   Dim buf As String * 6
 
   If Asc(FarbWert) <> 35 Then Err.Raise 5
 
   If Len(FarbWert) = 4 Then
      Mid$(buf, 1) = String$(2, Mid$(FarbWert, 4, 1))
      Mid$(buf, 3) = String$(2, Mid$(FarbWert, 3, 1))
      Mid$(buf, 5) = String$(2, Mid$(FarbWert, 2, 1))
   Else
      Mid$(buf, 1) = Mid$(FarbWert, 6, 2)
      Mid$(buf, 3) = Mid$(FarbWert, 4, 2)
      Mid$(buf, 5) = Mid$(FarbWert, 2, 2)
   End If
 
   HTMLColorZuFarbe = CLng("&H" & buf)
 
End Function

Aufruf

   'Ergebnis im Direktfenster anzeigen
   Debug.Print HTMLColorZuFarbe("#AFFE01") 'Ergebnis: 130735
   Debug.Print HTMLColorZuFarbe("#0055AA") 'Ergebnis: 11162880
   Debug.Print HTMLColorZuFarbe("#05A")    'Ergebnis: 11162880

Wikilinks

Formular zur Umrechnung von Farbwerten in verschiedene Formate

Weblinks

Convert a hex color string to an rgb color