• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBのReturnの使い方)

VBのReturnの使い方

このQ&Aのポイント
  • Excel2007のVBでReturnを使用する際にコンパイルエラーが発生する
  • VBではReturn文を使用して関数の結果を返すことができる
  • VBのReturn文は条件式や戻り値の型に合わせて正しく使用する必要がある

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

VB7以降(=VB.NET以降) では,Returnは戻り値を指定して関数から戻る (またはサブプロシージャから戻る) 機能になっています。 しかし,VB6およびそれ以前や,VBAでは,ReturnはGoSub文で呼び出されたサブルーチンから戻る機能です。 このため,関数の戻り値を指定して関数から戻る目的でReturn文を使うことはできません。 なお,#1さんへのお礼に書かれていたページでは, ・背景が緑のものはVB6用のコード ・背景が青のものはVB.NET用のコード です。

zigzagfire
質問者

お礼

なるほど。 記事をよく読んでいませんでした。申し訳ないです。 VB7以降では「Return 戻り値」が使えるけれど、VB6以前では使えないということですね。 ありがとうございます。

その他の回答 (2)

  • uruz
  • ベストアンサー率49% (417/840)
回答No.3

No.1さんの「お礼」で示されたページの説明を良く理解してください。 Return "Hello!" のように書けるのはVB.NETの場合だけです。 VB6ではGoSubに対するReturunであってReturunに戻り値を引数を持つことはできません(関数を脱けるステートメントではない)。 このGoSub-Returunは古いバージョンのVBとの互換性のために残されたものであってVB6での使用は推奨されない。 VBAは詳しくありませんがVB6と同じか実装されていないかもしれません。 ヘルプで確認してください。

zigzagfire
質問者

お礼

回答ありがとうございます。 No.2さんのお礼に書いたとおりです。 私の読解不足でした。 uruzさんの回答も質問に対して十分な回答ですが、 先着順ということで、No.2さんをベストアンサーとさせていただきます。

回答No.1

それは、CやC#でのReturnです。 VBAの場合は、 Function IsTen = True  ※つまりユーザー関数に代入するとそれが戻り値になる。 として、Returnです。

zigzagfire
質問者

お礼

回答ありがとうございます。 Function IsTen = True とする書き方は知っているのですが、以下のサイトを見ると Returnで値を返せると言ってます。 http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet11/vb6tonet11_02.html 「Return文のあとには式を書くことができ、これにより、関数が返す値を指定できる。」 サンプルを見ると、Return "Hello!" として String の値を返しています。 VB 6の機能と書いてるので、Excel2007はVB 6に対応してないということなのでしょうか?

関連するQ&A