• 締切済み

関数の戻り値に配列は設定できる?

VB6で関数の戻り値に配列を設定できるのでしょうか?

みんなの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.3

VBは使ったことはないのですが。 回答No.2 のやり方は問題が発生すると思われます。 関数やサブルーチンのローカル変数は呼ばれる度毎にスタック上に割り当てられ、サブルーチンから帰った後はローカル変数エリアは別の用途に使用され、破壊されてしまうのではないでしょうか。 配列(の先頭アドレス)を戻り値に指定する事は出来ますが、そのエリアは呼ぶ側が前もって割り当てておきサブルーチンコールのパラメータで指定するか、次善の策としてはコモンエリアやスタティックエリアを使って戻すなりする必要があると思われます。

  • Br6
  • ベストアンサー率64% (9/14)
回答No.2

できますよ。 String型の配列ならこんな感じです。 Function Test() As String()   Dim str(5) As String   Test = str End Function

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

参照渡しの引数を使いましょ

関連するQ&A

  • 配列を関数の戻り値に使う

    こんばんわ。 PHP5で配列を関数の戻り値として返す方法がわからず今回投稿させていただきました。 配列は1次元で 1,2,3 の値が a という配列に格納されています。 呼び出された関数(testメソッド)で a配列を返し、bで受けようとするのですが、bの値には NULL となっています。 返す際に return $a; としており、 $b=$obj-〉test(); で、aをbで受けようと考えております。 配列を返す場合は普通にretuneで返すだけではダメなのでしょうか。 解決方法がお分りの方がいらっしゃいましたらご教授のほうおねがいします。

    • ベストアンサー
    • PHP
  • 関数の引数と戻り値

    度々すいません。 関数に引数として配列のポインタを渡して、戻り値として配列のポインタを返したいのですが、やり方がよく分かりません。 お願いします。

  • 関数のパラメーターと戻り値について

    VB.NET 関数の定義とパラメータの設定と戻り値について質問です。 初心者です。 以下のような戻り値が複数ある関数を定義したいのですが、IN,OUTがよくわからなくて、困っています。DB検索となにか関係があるのでしょうか? 関数名: Fnc パラメータ:Enpno(Char) /IN パラメータ:EnpCD(Char) /OUT パラメータ:EnpNM(Varchar) /OUT 初期値:Enpno = S123 処理内容:DB接続して、Enpnoが一致する場合、戻り値としてEnpCDとEnpNMを返す。DB検索でしようするは,Enpnoのみ。 ByLefで戻り値を2つ返すというようなコードを見たのですが、OUTのときに使えばよいということなのでようか?とどなたか教えてください。 よろしくお願いします。

  • 2次元配列を戻り値とする関数?

    いつもお世話になっています。 角度を入力すると、 2×2の2次元配列を戻す 関数を作りたいのですが、 コンパイルすると、 戻り値の型のところで、 不正な変換だというエラーが出て うまく行きません。 参考書を何度も読み直して 戻り値の型をポインタのポインタにするなど、 いろいろトライしてみたのですが、うまく行きません。 typedef を使う方法も考えましたが、 他にもっとすっきりする方法はないでしょうか? どなたか参考URLをお教えくださるか、 解決策を教えてください。 よろしくお願いします。 ちなみに、この関数は大凡下記の通りです。 double** Matrix(double sita) { double mat[2][2]; mat[0][0]= cos(sita); mat[0][1]= sin(sita); mat[1][0]=-sin(sita); mat[1][1]= cos(sita); return mat; }

  • C#で配列の戻り値について

    プログラミング初心者で、ただいまC#の勉強中です。 bool型(trueまたはfalse)とstring型(関数内で取得した文字列)の値を 配列で関数の戻り値として返したいのですが、どうすれば良いのかわかりません。 true/falseもstringとして呼び出し側で判別するしか方法はないのでしょうか。 アドバイスをお願いいたします。

  • Functionの戻り値を配列にしたいのですが

    vbを始めたばかりですがよろしくお願いします。 Functionの戻り値を配列にしたいのですが Function fnc(ByVal a As Byte, ByVal b As Byte) As Integer() fnc(0) = a + b fnc(1) = a - b End Function というような使い方はできないのでしょうか? 一つのFunctionで二つの計算結果をかえすには どうしたらよいのでしょうか? お願いします。

  • C言語 関数の戻り値について

    C言語で関数を作る場合に最後にreturnで戻り値を設定しますよね? 自分はあまりそれがわかりません。 関数で出た答えを返すって言うのはわかるんですが、 returnが無くても大丈夫だったりreturnはあってもその後に戻り値を設定していなかったり。 何故returnがなくても動作するのでしょうか? 何故returnまであるのに戻り値は設定されていないのか? 教えてください。

  • Format関数の戻り値

    Format関数で戻り値がおもうようにとれません。 どうしてかわからず困っています。 以下の2パターンの違いがわかりません "0A"はなぜ"00"になってしまうのですか? (VBバージョンは6.0です) format("0D","00") 結果 "0D" format("0A","00") 結果 "00"

  • スプレッドシートのGASの関数で複数戻り値取得

    googleのスプレッドシートを使っています。 Google Apps Scriptでデータの取得を行っているのですが、 1つの関数から複数の戻り値を得るような方法はありますでしょうか? マイコンのC言語などをやった際に、ポインタ変数を関数の引数に設定して、その関数の引数に配列変数などをアドレス指定で設定することで複数の戻り値を得るような方法があったと思うのですが、GASでも同様の方法などはありますでしょうか? どうぞ、ご教示の程よろしくお願い致します。

  • 関数戻り値が連想配列の場合

    こんにちわ。 PHP5について質問です。 あるユーザ関数の戻り値が連想配列である場合、 ユーザ関数の実行~戻値の特定のキーの値を取得 までを1行で取得する方法があれば教えてください。 例) function hoge() {  return array("fuga" => "1", "moge" => "2"); } ここで"moge"の値を一発で参照したいと考えています。 通常では、 $result = hoge(); print $result["moge"]; のようにしていますが、これを一行で実現できる方法はありますでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう