関数プロシージャで戻り値を複数設定するには?


ギャプラン  2004-01-10 03:58:44  No: 111189

タイトルの通りです。

ユーザ関数(関数プロシージャ)で戻り値を複数設定するにはどうすればいいのでしょうか?


名無しさん  2004-01-10 04:30:33  No: 111190

何言ってんですか。
戻り値は1つだからこそ意味があるんですよ。


たかみちえ  URL  2004-01-10 04:42:02  No: 111191

…まあ、そんなとこです。戻り値はふつう一つしか返せません。これはルールです。

  と言っても、どうにかする方法はありますよ。
  参照渡しで引数を渡せば(ByRef だったかな)、それらに対する変更は、関数をでてものこります。
他にも、C言語風にやるなら、VB6で出てきた、VarPtr関数を使っても何とかできるかも(ま、ふつうしないでしょうが^^;)。

  何事も応用次第で、何とかなるものですよ。


Say  2004-01-10 09:38:18  No: 111192

たとえばこう?

Option Explicit
Private Type ResultType
    a As Long
    b As String
    c As Date
End Type
Private Sub Command1_Click()
    MsgBox func1.a & func1.b & func1.c
    MsgBox func2(0) & func2(1) & func2(2)
End Sub
Private Function func1() As ResultType
    func1.a = 123
    func1.b = "あいうえお"
    func1.c = #1/10/2004#
End Function
Private Function func2() As Variant
    func2 = Array(123, "あいうえお", #1/10/2004#)
End Function


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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