I forgot to mention... one of the advantages of using functions is that you
can use them directly within an expression. Using your example, there is no
need to assign the result passed back from your function to the para_ret
variable before you combine it with your text in the MsgBox statement...
Function Test(ByVal x As Integer)
x = 12
End Function
Private Sub CommandButton1_Click()
MsgBox "x is " & Test(x)
End Sub
Now, with that said, IF you need to use the (same) returned variable several
times within the same calling procedure (your CommandButton Click event for
example), then it would be more efficient to assign the function's return
value to a variable (as you did in your posted code) and use that variable
over and over again instead of making repeated calls to the same function in
order to get the same value back each time.
Rick
"Rick Rothstein (MVP -
VB)" wrote in
message ...
In VB/VBA, functions pass their values back through the function's name.
Try your code this way...
Private Sub CommandButton1_Click()
para_ret = Test()
MsgBox "x is " & para_ret
End Sub
Function Test()
Test = 12
End Function
Notice that this simple Test function did not need any arguments; however,
you could have provided them if there were calculation within the function
that relied on non-global values outside of it.
Rick
"Eng Teng" wrote in message
...
How do I get x value from Function Test() in CommandButton1_Click()
function ?
Function Test(ByVal x As Integer)
x = 12
End Function
Private Sub CommandButton1_Click()
para_ret = Test(x)
MsgBox "x is " & para_ret
End Sub
Regards,
Tee