Function で戻り値を2つ返したい時は?

解決


砂糖  2005-09-16 12:09:09  No: 125390

こんにちは。VB6の環境で開発している初心者です。
私の理解では、戻り値があるものはFunction、ないものはSubを利用すると思っています。Functionを使うと、戻り値が1個しか返せないように見受けられますが、2個返すことは可能でしょうか?ほかに何かいいアイデアがないかなーとも考えているのですが思いつきません。よろしくお願いします。


通ってみた  2005-09-16 13:01:32  No: 125391

Function内で「全体宣言の変数」に代入
呼び出したSubでその変数を参照

要はフラグ


LESIA  2005-09-16 13:19:52  No: 125392

戻り値にしたいものが同じ型なら、配列にするという方法もあります。

Private Sub Command1_Click()
    Dim n() As Integer

    n = test(1, 2)
    MsgBox n(0)
    MsgBox n(1)
End Sub

Private Function test(a As Integer ,b As Integer) As Integer()
    Dim x(1) As Integer

    x(0) = a + b
    x(1) = a - b

    test= x
End Function


砂糖  2005-09-16 14:35:44  No: 125393

通ってみたさん、LESIAさん、ありがとうございます。このFunctionはいろいろなところから呼び出されるので、全体変数では問題が発生するので、LESIAさんの方法を利用することにしました。早々のご解答ありがとうございました。


medaka  2005-09-16 17:43:35  No: 125394

参照渡しでは駄目なのかな?


さるべーじ  2005-09-16 19:10:42  No: 125395

Functionの型宣言自体を構造体にしてしまうといぅ手もありますね。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加