'添加 Command1 Command2 Command3
Option Explicit
Dim ColorR&, ColorG&, ColorB& '变量定义与声明
Dim Red&, Green&, Blue&
Dim TmpStr$(2)
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Me.Caption = "函数调用返回示例"
End Sub
'**************** 传址方式返回
Private Sub Command1_Click()
GetRGB1 167215, ColorR, ColorG, ColorB
MsgBox ColorR & " " & ColorG & " " & ColorB
End Sub
Private Sub GetRGB1(ColorVal&, R As Long, G As Long, B As Long)
R = ColorVal Mod 256
G = (ColorVal And vbGreen) / 256
B = (ColorVal And vbBlue) / 65536
End Sub
'***************************************************
'全局变量的方式
Private Sub Command2_Click()
'在最上面通用区定义 Dim Red&, Green&, Blue& 或在.bas模块使用Public宣告
Call GetRGB2(167215)
MsgBox Red & " " & Green & " " & Blue
End Sub
Private Sub GetRGB2(ColorVal&)
Red = ColorVal Mod 256
Green = (ColorVal And vbGreen) / 256
Blue = (ColorVal And vbBlue) / 65536
End Sub
'************************************************************
'数组变量方式返回
Private Sub Command3_Click()
Dim i&, S$()
S = GetRGB3(167215)
For i = 0 To UBound(S)
MsgBox S(i)
Next i
End Sub
Function GetRGB3(ColorVal&) As String()
TmpStr(0) = ColorVal Mod 256
TmpStr(1) = (ColorVal And vbGreen) / 256
TmpStr(2) = (ColorVal And vbBlue) / 65536
GetRGB3 = TmpStr
End Function
Option Explicit
Dim ColorR&, ColorG&, ColorB& '变量定义与声明
Dim Red&, Green&, Blue&
Dim TmpStr$(2)
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Me.Caption = "函数调用返回示例"
End Sub
'**************** 传址方式返回
Private Sub Command1_Click()
GetRGB1 167215, ColorR, ColorG, ColorB
MsgBox ColorR & " " & ColorG & " " & ColorB
End Sub
Private Sub GetRGB1(ColorVal&, R As Long, G As Long, B As Long)
R = ColorVal Mod 256
G = (ColorVal And vbGreen) / 256
B = (ColorVal And vbBlue) / 65536
End Sub
'***************************************************
'全局变量的方式
Private Sub Command2_Click()
'在最上面通用区定义 Dim Red&, Green&, Blue& 或在.bas模块使用Public宣告
Call GetRGB2(167215)
MsgBox Red & " " & Green & " " & Blue
End Sub
Private Sub GetRGB2(ColorVal&)
Red = ColorVal Mod 256
Green = (ColorVal And vbGreen) / 256
Blue = (ColorVal And vbBlue) / 65536
End Sub
'************************************************************
'数组变量方式返回
Private Sub Command3_Click()
Dim i&, S$()
S = GetRGB3(167215)
For i = 0 To UBound(S)
MsgBox S(i)
Next i
End Sub
Function GetRGB3(ColorVal&) As String()
TmpStr(0) = ColorVal Mod 256
TmpStr(1) = (ColorVal And vbGreen) / 256
TmpStr(2) = (ColorVal And vbBlue) / 65536
GetRGB3 = TmpStr
End Function



