重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VB6.0でSubとFunctionの使い分けに迷っています。
・関数呼び出しの使い分けについて教えていただけますか?
・どちらもcallで呼び出せるのでしょうか?
・関数はcallを使わなければならないのでしょうか?

A 回答 (4件)

違いは2点です。


1.呼び方 SUBはCALL FUNCTIONは式、例えばD=DateDif(D1,D2)
2.答えの返し方 SUBは引数で返す、FUNCTIONは戻り値で返す。
  上記では答えが自動的にDに代入される。

応用としてはX=DateDif(D1,D2)+DateDif(D3,D4)なども有ります。
この場合2つの戻り値(中間結果)を足してXに代入してくれます。
    • good
    • 0
この回答へのお礼

ありがとうございます。引数がいらない場合もあるのですね。

お礼日時:2006/07/19 21:54

スーツのデザイナーでプログラマではありませんので参考までに・・・。



Sub は、いわゆるサブルーチンの発展形と思います。
Function は、いわゆる関数そのものでしょう。

一連の手続きをパッケージ化するだけの目的で使用するのが Sub。
一連の計算(手続き)結果を得るパッケージが Function。

この考えですと、戻り値を取得することが出来ない Function には Call は馴染み難いと思います。

*そもそも、私は Call など使いません。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2006/07/19 21:54

#1で



ラーメンを作成になってますが
ラーメン作成に修正します

#ラーメンを返す、もreturn ラーメン の方が良かったかなぁ・・・
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2006/07/19 21:53

値を返して欲しいかどうかで使い分けます



Sub ラーメン作成1

ラーメンを作る

End Sub

Function ラーメン作成2 as ラーメン型

ラーメンを作る
ラーメンを返す

End Sub

Private Sub Main

Dim a as ラーメン型
call ラーメンを作成1
a = ラーメンを作成2

End Sub



# C言語でいうvoidと言えば判る人は判るかも

>どちらもcallで呼び出せるのでしょうか?
やってみたら呼び出せました。がcallの場合Functionの戻り値が返るように書けないと思います

>関数はcallを使わなければならないのでしょうか?
自分の場合、Functionは値を返す印象があるのでお勧めしません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!