質問: vbaでの戻り値と引数について 最近vbaでプログラムを勉強しています。 引数と戻り値について教えてください。 定義としては、 引数:プロシージャに渡される定数、変数、および式。 戻り値:呼び出し元に処理の結果を戻す値。 となっているのですがいまいちピンときません。 subプロシージャとfunctionプロシージャでその違いがあると思うのですが、具体的にどれが引数でどれが戻り値なのかわかりません。 他のプログラミングも全く経験がない初心者で初歩的な質問ですみませんがご教授お願いします。
回答: 簡単に説明するとsubプロシージャとfunctionプロシージャの違いは"式"の中で使えるかということです。 function test1(lnga as long) as long という定義をした場合最後の"as long"がtest1の処理結果にlong型の値を返す指定になります。 functionプロシージャは呼び出された結果としての値を持たせることが出来るので計算式の中や評価式の中で使用できます。 上記のtest1というfunctionプロシージャの場合 l = test1(5) や if test1(5) > 10 then ... などの使い方が出来ますがsubプロシージャの場合は上記のような記述をするとエラーになります。 それ以外の違いはありませんので引数に対してbyrefを適宜指定することによって引数から処理結果を取り出すようにすることも出来ます。(byvalを指定しなければ規定値はbyrefなのであえて記述の必要はないですが...)