- ベストアンサー
VBのReturnの使い方
- Excel2007のVBでReturnを使用する際にコンパイルエラーが発生する
- VBではReturn文を使用して関数の結果を返すことができる
- VBのReturn文は条件式や戻り値の型に合わせて正しく使用する必要がある
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VB7以降(=VB.NET以降) では,Returnは戻り値を指定して関数から戻る (またはサブプロシージャから戻る) 機能になっています。 しかし,VB6およびそれ以前や,VBAでは,ReturnはGoSub文で呼び出されたサブルーチンから戻る機能です。 このため,関数の戻り値を指定して関数から戻る目的でReturn文を使うことはできません。 なお,#1さんへのお礼に書かれていたページでは, ・背景が緑のものはVB6用のコード ・背景が青のものはVB.NET用のコード です。
その他の回答 (2)
- uruz
- ベストアンサー率49% (417/840)
No.1さんの「お礼」で示されたページの説明を良く理解してください。 Return "Hello!" のように書けるのはVB.NETの場合だけです。 VB6ではGoSubに対するReturunであってReturunに戻り値を引数を持つことはできません(関数を脱けるステートメントではない)。 このGoSub-Returunは古いバージョンのVBとの互換性のために残されたものであってVB6での使用は推奨されない。 VBAは詳しくありませんがVB6と同じか実装されていないかもしれません。 ヘルプで確認してください。
お礼
回答ありがとうございます。 No.2さんのお礼に書いたとおりです。 私の読解不足でした。 uruzさんの回答も質問に対して十分な回答ですが、 先着順ということで、No.2さんをベストアンサーとさせていただきます。
- Hayashi_Trek
- ベストアンサー率44% (366/818)
それは、CやC#でのReturnです。 VBAの場合は、 Function IsTen = True ※つまりユーザー関数に代入するとそれが戻り値になる。 として、Returnです。
お礼
回答ありがとうございます。 Function IsTen = True とする書き方は知っているのですが、以下のサイトを見ると Returnで値を返せると言ってます。 http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet11/vb6tonet11_02.html 「Return文のあとには式を書くことができ、これにより、関数が返す値を指定できる。」 サンプルを見ると、Return "Hello!" として String の値を返しています。 VB 6の機能と書いてるので、Excel2007はVB 6に対応してないということなのでしょうか?
お礼
なるほど。 記事をよく読んでいませんでした。申し訳ないです。 VB7以降では「Return 戻り値」が使えるけれど、VB6以前では使えないということですね。 ありがとうございます。