我在前面《 如何将一个包含颜色信息的长整类型转化为 RGB 表示》中提到的三个转换函数可以转换为一个更简便的函数:
Public Function GetRGBValue(lpaValue() As Integer, ByVal crColor As Long) As Long
On Error GoTo ErrHandle
If crColor >= 0 Then
ReDim lpaValue(1 To 3) As Integer
lpaValue(1) = crColor Mod 256
lpaValue(2) = Fix((crColor / 256)) Mod 256
lpaValue(3) = Fix(crColor / 256 / 256)
Else
GetRGBValue = -1
End If
Exit Function
ErrHandle:
GetRGBValue = -1
End Function
对此函数的引用示例:
Sub Main()
Dim aRGB() As Integer, hFunc As Long
hFunc = GetRGBValue(aRGB(), RGB(88, 3, 24))
If hFunc <> -1 Then
MsgBox "R:" & aRGB(1) & " G:" & aRGB(2) & " B:" & aRGB(3)
End If
End Sub
需要说明的是,此函数执行失败则返回值为-1,否则为0,另外,函数中的第一个参数为数组,此数组的变量传输类行为 ByRef,并在函数过程中重新声明了该数组为一个一维三元素的数组,所以,若源数组中存在数据,则在函数成功执行后数据将丢失。




















