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

解決


砂糖  2005-09-16 03:09:09  No: 125390  IP: [192.*.*.*]

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

編集 削除
通ってみた  2005-09-16 04:01:32  No: 125391  IP: [192.*.*.*]

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

要はフラグ

編集 削除
LESIA  2005-09-16 04:19:52  No: 125392  IP: [192.*.*.*]

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

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 05:35:44  No: 125393  IP: [192.*.*.*]

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

編集 削除
medaka  2005-09-16 08:43:35  No: 125394  IP: [192.*.*.*]

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

編集 削除
さるべーじ  2005-09-16 10:10:42  No: 125395  IP: [192.*.*.*]

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

編集 削除