人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic6の初歩的な質問です。public functionで取得した変数をprivate subに2つ以上スマートに持って帰ってくる方法が分かりません。ひとつであればa=FunctionName()で呼出元のaに代入されるところまでは分かるのですが、たとえば、functionで外部の設定ファイルを読み込み、それを呼出元ルーチンの変数aとbとcに代入したいということを考えています。global変数とか配列変数を使えばできそうなのですが、もっともスマートな方法はないのでしょうか。

●質問者: mizushima
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:sub ひとつ スマート ファイル ルー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● jacky3
●25ポイント

http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap...

ご指定のページが見つかりません

urlはMSDNです。

まず一つ目はByRefで引数を渡す方法です。

Public Function Hoge(ByRef a As Long, ByRef b As Long, ByRef c As Long) As Long

a = 10

b = 25

c = -1

End Function

と言う関数があって

呼び出し元で

Dim a As Long, b As Long, c As Long

hoge a, b, c

Debug.Print a, b, c

とやってあげると、確かに値が帰ってきてるのがわかると思います。

あとは、ユーザー定義型を作ってそれを戻り値にするとかでしょうか。


2 ● snitch
●25ポイント

http://www.google.com/

Google

ByRef つまり参照渡しで関数の引数として受け渡しを行ってはどうでしょうか

Private Sub SubA

Dim intA As Integer

Dim strB As String

Dim lngC As Long

intA = 0

strB = ””

lngC = Func(intA ,strB)

(中略)

End Sub

Public Function Func(ByRef intX As Integer, ByRef strY As String) As Long

intX = 100

strY = ”hatena”

Func = 65536

End Function

見たいな感じです。

SubAでのFuncの呼出し後には

intA = 100

strB = ”hatena”

lngC = 65536

が入ります。

◎質問者からの返答

なるほど。そんなパラメーターがあるんですね!N88BASICしかやったことなかったもので。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ