「値を返す」とは?

解決


ほー  2001-11-24 18:48:09  No: 103810  IP: [192.*.*.*]

初歩的な質問ですがよろしくお願いします。
今、SubプロシージャとFunctionプロシージャについて
参考書で読んでいるのですが、
「値を返す、返さないの違い」とあるのですが、
一般的に「値を返す」とはどういうことなのでしょうか?
よろしくお願いします。

編集 削除
たかみちえ  2001-11-25 02:06:30  No: 103811  IP: [192.*.*.*]

戻り値があるかどうかの違いです。(こんなのでいいのかなぁ…)
  その関数で何か計算をして、
その答えを戻り値として返すのなら(Len("Str")の3のように)"値を返す"
そうでないなら(もしくは別の方法でしかなにも返さないのなら)"値を返さない"ものです。
Subでは値は返せません、…というと、みんなFunctionでもかまわないような気がするんですけど…^^;

  まあ、アルファベットが長いので、Subのほうが書くのが早いのと(ぶしょう者^^;)
あとどこかで聞いたような気がしますけど、Functionばっかり使ってると、
コンパイルごのソフトが重くなるって…。
(Publicをむやみに使ってはいけないのは、ヘルプにも書いてありますけど)

  さて、SubとFunctionですけど、あんまり気にする必要はないと思います。
(関数を作るときは、間違えると文法エラーだって教えてくれるし)
APIのコールバック関数などでは、さすがに重要ですけど。

編集 削除
MADIA  URL  2001-11-25 23:27:35  No: 103812  IP: [192.*.*.*]

実際に下にあるソースを書いてみたので参考にどうぞ。

Function a(x)

x = x * 2
a = x 'ここで値を返している

End Function

' subでは値を返せない
Sub b()

x = 100

End Sub


'テストコード
Private Sub Form_Load()

'a 関数は値を返すので、メッセージボックスには2が戻る
MsgBox (a(1))

End Sub

編集 削除
ほー  2001-11-26 22:30:31  No: 103813  IP: [192.*.*.*]

なるほど、値を返すとは、
いろいろなとらえ方があるんですね。
たかみちえさん、MADIAさんありがとうございました。

編集 削除