
Excel2007のVBで以下のfunctionを定義すると、Returnのところでコンパイルエラーになります。
--------------------------------------
Public Function IsTen(lNumber As Integer) As Boolean
If lNumber = 10 Then
Return True
Else
Return False
End If
End Function
--------------------------------------
ググってみるとReturn True とか Return False とかができるように思えるのですが、何が不味いのでしょうか?
VBの知識はあまりなく、低レベルな質問かもしれませんが、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
VB7以降(=VB.NET以降) では,Returnは戻り値を指定して関数から戻る (またはサブプロシージャから戻る) 機能になっています。
しかし,VB6およびそれ以前や,VBAでは,ReturnはGoSub文で呼び出されたサブルーチンから戻る機能です。
このため,関数の戻り値を指定して関数から戻る目的でReturn文を使うことはできません。
なお,#1さんへのお礼に書かれていたページでは,
・背景が緑のものはVB6用のコード
・背景が青のものはVB.NET用のコード
です。
なるほど。
記事をよく読んでいませんでした。申し訳ないです。
VB7以降では「Return 戻り値」が使えるけれど、VB6以前では使えないということですね。
ありがとうございます。
No.3
- 回答日時:
No.1さんの「お礼」で示されたページの説明を良く理解してください。
Return "Hello!"
のように書けるのはVB.NETの場合だけです。
VB6ではGoSubに対するReturunであってReturunに戻り値を引数を持つことはできません(関数を脱けるステートメントではない)。
このGoSub-Returunは古いバージョンのVBとの互換性のために残されたものであってVB6での使用は推奨されない。
VBAは詳しくありませんがVB6と同じか実装されていないかもしれません。
ヘルプで確認してください。
回答ありがとうございます。
No.2さんのお礼に書いたとおりです。
私の読解不足でした。
uruzさんの回答も質問に対して十分な回答ですが、
先着順ということで、No.2さんをベストアンサーとさせていただきます。
No.1
- 回答日時:
それは、CやC#でのReturnです。
VBAの場合は、
Function IsTen = True ※つまりユーザー関数に代入するとそれが戻り値になる。
として、Returnです。
回答ありがとうございます。
Function IsTen = True とする書き方は知っているのですが、以下のサイトを見ると Returnで値を返せると言ってます。
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6to …
「Return文のあとには式を書くことができ、これにより、関数が返す値を指定できる。」
サンプルを見ると、Return "Hello!" として String の値を返しています。
VB 6の機能と書いてるので、Excel2007はVB 6に対応してないということなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
このQ&Aを見た人はこんなQ&Aも見ています
-
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
5
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
6
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
7
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
8
CloseとDisposeの違い
Visual Basic(VBA)
-
9
値を返さないコード パス
Visual Basic(VBA)
-
10
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
11
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
12
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
13
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
14
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
15
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
16
フォームの再読み込み
Visual Basic(VBA)
-
17
【VB6.0】 あるフォームから他のフォームへ値を受け渡したい
Visual Basic(VBA)
-
18
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
19
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
-
20
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
foreachでループした変数を他の...
-
クッキーが無効のとき処理
-
VBのReturnの使い方
-
パターンマチングについて(CGI)
-
プロシージャとは
-
サブルーチン(共通の処理)の...
-
Perl・DBIでの汎用selectサブル...
-
UWSCの終了の仕方
-
ソート順の配列に順位表示する
-
ごめんなさい 応用てきだとおう...
-
VBAでの一時停止と再開の方法
-
重複ファイルを削除したいので...
-
「人を傷つけることは悪いこと...
-
forの中にリストを書くとその後...
-
HTML::Parserの解析結果
-
バイナリデータの検索(VB.NET2008)
-
エクセルの当番表を作っていま...
-
配列にaaaからzzzまでの17576(2...
-
隣接交換法のアルゴリズムについて
-
VLC media Playerでのループ再生
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBのReturnの使い方
-
ExcelVBAでのデータ型変換、も...
-
my($Str)とmy $Strの違い
-
Perl実行時のメモリ不足について
-
スカラー変数をチェック
-
COBOLの日付操作
-
環境変数リファラーの値をを最...
-
プロシージャとは
-
picアセンブラ ビルドは完了す...
-
サブルーチン(共通の処理)の...
-
Perlのmyのサブルーチンの内外...
-
UWSCの終了の仕方
-
画面を強制的に再描画させる方法
-
Escキーを押すと、中断する時と...
-
範囲指定したセルを1つずつ飛...
-
vb.netです。2次元配列の要素を...
-
VBAで3秒だけ時間を止めたい
-
エクセルの当番表を作っていま...
-
UWSCに制限時間を付けたいです
-
エクセルVBAでTransposeの不思議
おすすめ情報