Bueno este es un code que hice hace tiempo para hacer degradado de un Color a otro. es el que uso todavia en mis controles de usuario y demas, se que leandro hizo algo muy parecido a esto pero de cualquier forma lo pongo para que lo tengan.
'By xmbeat
Private Function Color(Col As Long) As Integer()
Const B As Long = 65536 'constante que es el resultado de 256 al Cuadrado
Const G As Long = 256
Dim elRGB(2) As Integer
Col = Abs(Col)
elRGB(0) = Col \ B
elRGB(1) = (Col Mod B) \ G
elRGB(2) = (Col Mod B) Mod G
Color = elRGB
End Function
Sub Gradient(Formulario As Object, Inicio As OLE_COLOR, Final As OLE_COLOR, Optional Min As Long = 0, Optional _
Max As Long = 256)
With Formulario
.AutoRedraw = True
Dim I As Integer
Dim Ini() As Integer
Dim Fin() As Integer
Dim Dif As Double
Dim Ant As Long
Dim R As Double, G As Double, B As Double
On Error Resume Next
Ant = .ScaleHeight
.ScaleHeight = 256
Ini = Color(Inicio)
Fin = Color(Final)
Dif = Max - Min
R = Ini(0): G = Ini(1): B = Ini(2)
For I = Min To Max
R = R + ((Fin(0) - Ini(0)) / Dif)
G = G + ((Fin(1) - Ini(1)) / Dif)
B = B + ((Fin(2) - Ini(2)) / Dif)
Formulario.Line (0, I)-(.ScaleWidth, I + 1), RGB(R, G, B), BF
Next I
.ScaleHeight = Ant
End With
End Sub
Private Sub Form_Resize()
Gradient Me, RGB(150, 150, 150), vbBlack, , 128
Gradient Me, vbBlack, RGB(50, 50, 50), 128
End Sub