| 
    
     |  | こんにちは。 >以下のような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の内容にもよります。
 検討してみてください。
 
 |  |