|
こんにちは。
>以下のようなFunctionを書いたのですがこの中でRetu;Gyouの変数の値も
>Subプロシージャーに引き渡したいのですが 可能なのでしょうか
四則計算をするFunctionプロシジャーを考えます。
Function名 四則計算
機能 与えれた二つの整数で 足し算、引き算、掛け算、割り算の
答えを返します
一つは、Functionの戻り値を配列で返す方法
Function 四則計算(ByVal x As Long, ByVal y As Long) As Variant
Dim ans(1 To 4) As Double
ans(1) = x + y
ans(2) = x - y
ans(3) = x * y
ans(4) = x / y
四則計算 = ans()
Erase ans()
End Function
'呼び出し元では、
Sub test1()
Dim 答え As Variant
Dim a As Long
Dim b As Long
a = 10
b = 5
答え = 四則計算(a, b)
MsgBox "足し算 " & a & "+" & b & "=" & 答え(1)
MsgBox "引き算 " & a & " - " & b & " = " & 答え(2)
MsgBox "掛け算 " & a & "×" & b & "=" & 答え(3)
MsgBox "割り算 " & a & "÷" & b & "=" & 答え(4)
End Sub
もう一つは、一番頻度の高そうな結果をFucntion xxのxxで返し(ここでは足し算)、
付録的に他の計算は、パラメータで返す方法。
Function 和(ByVal x As Long, ByVal y As Long, 差 As Double, 積 As Double, 商 As Double) As Double
和 = x + y
差 = x - y
積 = x * y
商 = x / y
End Function
'呼び出し元では、
Sub test2()
Dim 引き算 As Double
Dim 掛け算 As Double
Dim 割り算 As Double
Dim a As Long
Dim b As Long
a = 10
b = 5
MsgBox "足し算 " & a & "+" & b & "=" & 和(10, 5, 引き算, 掛け算, 割り算)
MsgBox "引き算 " & a & " - " & b & " = " & 引き算
MsgBox "掛け算 " & a & "×" & b & "=" & 掛け算
MsgBox "割り算 " & a & "÷" & b & "=" & 割り算
End Sub
どっちが良いかは、Functionの内容にもよります。
検討してみてください。
|
|