タイトルの通りです。
ユーザ関数(関数プロシージャ)で戻り値を複数設定するにはどうすればいいのでしょうか?
何言ってんですか。
戻り値は1つだからこそ意味があるんですよ。
…まあ、そんなとこです。戻り値はふつう一つしか返せません。これはルールです。
と言っても、どうにかする方法はありますよ。
参照渡しで引数を渡せば(ByRef だったかな)、それらに対する変更は、関数をでてものこります。
他にも、C言語風にやるなら、VB6で出てきた、VarPtr関数を使っても何とかできるかも(ま、ふつうしないでしょうが^^;)。
何事も応用次第で、何とかなるものですよ。
たとえばこう?
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
ツイート | ![]() |