Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10909 / 76734 ←次へ | 前へ→

【71368】Re:Functionで2つ以上の変数
発言  ichinose  - 12/2/25(土) 11:56 -

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

5 hits

【71366】Functionで2つ以上の変数 AoYasu 12/2/25(土) 10:17 質問
【71368】Re:Functionで2つ以上の変数 ichinose 12/2/25(土) 11:56 発言
【71371】Re:Functionで2つ以上の変数 AoYasu 12/2/25(土) 14:50 お礼
【71369】Re:Functionで2つ以上の変数 UO3 12/2/25(土) 13:24 発言

10909 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free