Wie bekomme ich den entsprechenden Hex-Wert einer RGB-Farbe in Excel / VBA?

8

Ich versuche, eine öffentliche const einer Farbe in meinem VBA-Code zu setzen. Normalerweise kann ich verwenden:

%Vor%

Allerdings gibt es wegen der RGB-Funktion keinen Weg zur öffentlichen Const. Ich habe diesen RGB-Wert mithilfe eines Online-Konverters in Hex konvertiert, und ich habe B7DEE8

zurückbekommen

Verwenden:

%Vor%

ergibt eine völlig andere Farbe. Ich denke, das könnte tatsächlich eine RGBA-Farbe sein, und ich habe versucht, B7DEE8__ und die Farbe ziemlich nahe (mit der letzten Ziffer ist B8), aber ich würde gerne wissen, wie man den richtigen Wert tatsächlich finden.

Hinweis: Ich brauche nicht wirklich Code, um dies in hex zu konvertieren, ich muss nur wissen, wie ich es finden kann, weil ich fünf konstante Farben habe, die ich in meinem Excel-Blatt verwende, und ich möchte sie einrichten .

    
Brandon 14.05.2011, 16:52
quelle

5 Antworten

10

Sie müssen die Bytes in die Reihenfolge umkehren

%Vor%

um den richtigen Farbwert zu erhalten.

    
Howard 14.05.2011, 17:03
quelle
9

Der Grund für die scheinbare Umkehrung ist, dass die RGB () - Funktion tatsächlich einen BGR-Wert erzeugt.

Genauer gesagt ist das rote Byte das niederwertige Byte und das blaue Byte ist das höherwertige Byte (oder mindestens das dritte von vier).

Versuchen Sie dieses Beispiel im Direktfenster:

%Vor%

Beachten Sie, dass das "volle" Byte (255 oder FF) und das "halbvolle" Byte (128 oder 80) auf den gegenüberliegenden Seiten in jedem Ergebnis enden. Deshalb müssen Sie die Hexadezimalkonstante in der umgekehrten Reihenfolge angeben, von der Sie erwarten würden, denselben Wert zu erhalten.

Außerdem müssen Sie keinen Online-Konverter verwenden. Die Funktion Hex () stellt den Hexadezimalwert der ihr zugewiesenen Zahl zur Verfügung, und Int nimmt eine Zeichenfolge im Hexadezimalformat an und gibt den Dezimalwert zurück:

%Vor%

Aktualisierung:

Um diese Informationen zum Erstellen Ihrer Hexadezimalkonstanten zu verwenden, führen Sie einfach Ihre RGB () - und Hex () -Anweisungen im Direktfenster wie oben aus (tippen Sie Strg + G, um sie zu öffnen und zu schließen) und verwenden Sie den resultierenden Hex-Wert als deine Konstante. Wenn der Wert weniger als 6 Ziffern lang ist, können Sie ihn links mit Nullen auffüllen, aber das ist technisch nicht notwendig:

%Vor%

Kopieren Sie dann diese letzte Zeile in Ihren Code.

    
Todd 15.05.2011 01:34
quelle
1
%Vor%

Beachten Sie, dass Excel RGB-Werte rückwärts (BGR) sind

    
iliketocode 01.10.2014 21:12
quelle
1

OK, das Folgende nimmt die Farbe einer Zelle in Excel 2010 an und stellt einen gültigen Hexcode bereit:

%Vor%     
Amit Kohli 10.06.2015 14:27
quelle
-1

Ich habe diesen Code getestet, kann Howards Antwort wirklich nicht folgen

%Vor%     
Arnoldiusss 14.05.2011 17:17
quelle

Tags und Links