Farbbestandteile aus Color-Eigenschaft ziehen

12/05/2009 - 15:53 von christian.kirchhoff | Report spam
Hallo,

gibt es eine Möglichkeit, die Rot-, Grün- und Blaubestandteile eines
Color-Wertes herauszuziehen? Sozusagen ein Pednant zur RGB-Funktion.

Ich möchte alle unterschiedlichen Farben eines Doukentes auflisten.
Ich könnte die Color-Werte direkt auflisten, doch diese sind für den
Menschen schwer lesbar. Eine Anzeige der R-, G- und B-Bestandteile
wàre da besser.

Meines Wissens sind Color-Werte 24-Bit-Werte, der Rotanteil steht im
ersten Byte, Grün im zweiten und Blau im dritten. Mittels bitweiser
Operatoren wie SHIFT und AND müsste das doch gehen, doch solche
Operatoren finde ich nicht.

Meine Visual-Basic-Hilfe funktioniert nicht richtig, sobald ich eine
Suche ausführen, wird wohl XML-Code als Antwort generiert, die die
Hilfe normalerweise irgendwie anzeigen soll. Doch es wird stattdessen
gefragt, ob man die Daten speichern oder öffnen möchte (Internet
Explorer màßig). "Öffnen" öffnet die Daten dann im Standard-Programm
für XML-Daten (bei mir Oxygen)...

Viele Grüße,

Christian Kirchhoff
 

Lesen sie die antworten

#1 Christian Freßdorf
12/05/2009 - 16:17 | Warnen spam
Hallo Christian

hilft das weiter?
Sub MyColor()
Dim r As Integer, g As Integer, b As Integer
Dim lngColor As Long
lngColor = Selection.Font.Color
Debug.Print "Farbwert: " & lngColor
ColorToRGB CStr(lngColor), r, g, b
MsgBox lngColor & "=(" & r & "," & g & "," & b & ")"
Debug.Print "Zur Kontrolle: " & RGB(r, g, b)
End Sub
Sub ColorToRGB(ByVal Color As String, ByRef r As Integer, _
ByRef g As Integer, ByRef b As Integer)

On Error GoTo Solution
Dim SStr As String
Dim sR As String, sB As String, sG As String
SStr = "000000" & Hex(Color)
SStr = Right(SStr, 6)
sB = "&H" & Mid(SStr, 1, 2): b = CInt(Format(sB))
sG = "&H" & Mid(SStr, 3, 2): g = CInt(Format(sG))
sR = "&H" & Mid(SStr, 5, 2): r = CInt(Format(sR))

Solution:
If Err.Number <> 0 Then
r = -1
g = -1
b = -1
End If
End Sub


Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)

Ähnliche fragen