- ベストアンサー
関数で複数の値を戻り値として返す方法
こんにちは初歩的な質問ですいませんが、VB6.0にて関数を 呼び出して、求めた値を戻り値として返す方法は知ってい ますが、2つ又は3つの値を返したい場合、どうやればよい のでしょうか? よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 ByRefで指定した(通常は省略している)引数に返せばいいと思います。 こんな感じで。 a = 100 b = 10 ret = Keisan(a As Double, b As Double, Tashi As Double, Hiki As Double) MsgBox Tashi MsgBox Hiki ***** プロシージャ部 ***** Public Function Keisan(a As Double, b As Double, resP As Double, resM As Double) As Long resP = a + b resM = a - b End Function あとは、戻り値を配列やユーザー定義型にするとか。 それか、グローバル変数を用意しておいて、それを介するとかでしょうか。
その他の回答 (6)
- maruru01
- ベストアンサー率51% (1179/2272)
No.5(及び6)さんへ。 いやいや、こういうのは明示的にあえて記述する方がいいかも知れませんね。
- Euglena
- ベストアンサー率62% (5/8)
あ~、ごめんなさい。 参照渡しが既定なんですね。 失礼しましたm(_ _)m
- Euglena
- ベストアンサー率62% (5/8)
Public Function Keisan(a As Double, b As Double, resP As Double, resM As Double) As Long ↓ Public Function Keisan(a As Double, b As Double, ByRef resP As Double, ByRef resM As Double) As Long では?
お礼
どうもありがとうございます。 指摘した個所が正であれ誤りであれ、質問した私には レスされた方の内容を鵜呑みにしてしまうので、他の方の こういうご好意は大変うれしいです。 ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
No.1のmaruru01です。 ちょっと間違えているので訂正します。 ret = Keisan(a As Double, b As Double, Tashi As Double, Hiki As Double) ↓ ret = Keisan(a, b, Tashi, Hiki) です。
- r_homma
- ベストアンサー率50% (2/4)
お疲れ様です。 先々週からVBをはじめた初心者です。(VBではなくプログラムも初心者) 僕も最近知ったのですが、 hogehoge(引数1,引数2,返したい値1,返したい値2)と言った感じで 実際の処理に使う引数のほかに変数を指定してあげると 戻り値のほかに返したい値1,返したい値2にも値を格納→参照できます。 参照渡しとかそういったものらしいです。 詳しくは「参照渡し」で調べてみてくださいね。 詳しい方のフォローお願いします~。
お礼
どうもありがとうございます。 他の方に教えていただきましたし、検索してみたら 結構出てきました。 おかげでよくわかりました。 ありがとうございました。
- tibinkoron
- ベストアンサー率47% (21/44)
関数はVBの中でのお話しでしょうか? VBから呼び出す関数とは? VBの中だけの世界であれば,グローバル変数を設定して,そこに値を入れて参照する。 という方法ではダメなのでしょうか?
お礼
どうもありがとうございます。 グローバル変数に関しては、数が多くなりすぎたために 質問した次第です。 わざわざすいませんでした。
お礼
わざわざソースを記述していただきましてありがとうございます。 大変参考になります。 >それか、グローバル変数を用意しておいて、それを介するとかでしょうか。 先日までそうしていたんですが、グローバル変数のオン パレードになってしまい、変数の数が膨大になりすぎて、 困っていたんですよ。。。 ありがとうございました。