「値を返す」とは?

解決


ほー  2001-11-25 03:48:09  No: 103810

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


たかみちえ  2001-11-25 11:06:30  No: 103811

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

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

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


MADIA  URL  2001-11-26 08:27:35  No: 103812

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

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-27 07:30:31  No: 103813

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加