May 30 2007
Convertir entre RGB, Hex y Color en Visual Basic
Como primer paso necesitamos un formulario con, 5 cajas de texto y 4 botones de comando.
También puedes encontrar un ejecutable al final del artículo.

El artículo es muy simple, pues como siempre el primer paso es entender el procedimiento y ya después te encargaras de adaptarlo a tus necesidades.
Botón cmdhextorgb.
Tomará el contenido de la caja de texto Text1 el cual debe ser de 7 caracteres #FFCC00
-
Private Sub cmdhextorgb_Click()
-
‘#FFCC00
-
hexcolor = Text1.Text
-
Dim r, g, b As Byte
-
r = CByte(“&H” & Mid(hexcolor, 2, 2))
-
g = CByte(“&H” & Mid(hexcolor, 4, 2))
-
b = CByte(“&H” & Mid(hexcolor, 6, 2))
-
-
txtResult.BackColor = RGB(r, g, b)
-
txtResult.Text = r & “,” & g & “,” & b
-
End Sub
Botón cmdrgbtohex.
Tomará el contenido de la caja de texto Text2 el cual debe ser separado por comas 255,255,255
-
Private Sub cmdrgbtohex_Click()
-
Dim num(0 To 3)
-
Dim pos1, pos2
-
RGB_Color = Text2.Text
-
‘255,255,255
-
contador = 1
-
Do
-
pos1 = InStr(RGB_Color, “,”)
-
If pos1 = 0 Then
-
num(contador) = (RGB_Color)
-
Else
-
num(contador) = Mid(RGB_Color, 1, pos1 - 1)
-
End If
-
RGB_Color = Mid(RGB_Color, pos1 + 1, Len(RGB_Color))
-
contador = contador + 1
-
Loop Until pos1 = 0
-
-
r = Val(num(1))
-
g = Val(num(2))
-
b = Val(num(3))
-
txtResult.BackColor = RGB(r, g, b)
-
-
-
‘get the r value
-
If r <16 Then hex1 = 0 & Hex(r) Else hex1 = Hex(r)
-
‘get the g value
-
If r <16 Then hex2 = 0 & Hex(g) Else hex2 = Hex(g)
-
‘get the b value
-
If b <16 Then hex3 = 0 & Hex(b) Else hex3 = Hex(b)
-
-
txtResult.Text = “#” & hex1 & hex2 & hex3
-
End Sub
Botón cmdrgbtocolor.
Tomará el contenido de la caja de texto Text3 el cual debe ser separado por comas 255,255,255
-
Private Sub cmdrgbtocolor_Click()
-
Dim num(0 To 3)
-
Dim pos1, pos2
-
RGB_Color = Text3.Text
-
‘255,255,255
-
contador = 1
-
Do
-
pos1 = InStr(RGB_Color, “,”)
-
If pos1 = 0 Then
-
num(contador) = (RGB_Color)
-
Else
-
num(contador) = Mid(RGB_Color, 1, pos1 - 1)
-
End If
-
RGB_Color = Mid(RGB_Color, pos1 + 1, Len(RGB_Color))
-
contador = contador + 1
-
Loop Until pos1 = 0
-
-
txtResult.BackColor = RGB(Val(num(1)), Val(num(2)), Val(num(3)))
-
rgbtocolor = Val(num(1)) + (Val(num(2)) * 256) + (Val(num(3)) * 65536)
-
-
txtResult.Text = rgbtocolor
-
End Sub
Botón cmdcolortorgb.
Y finalmente de Color a RGB.
-
Private Sub cmdcolortorgb_Click()
-
mcolor = Val(Text4.Text)
-
Dim r, g, b As Byte
-
r = mcolor And 255
-
g = (mcolor \ 256) And 255
-
b = (mcolor \ 65536) And 255
-
colortorgb = r & “,” & g & “,” & b
-
txtResult.BackColor = RGB(r, g, b)
-
txtResult.Text = colortorgb
-
End Sub


