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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
CloseとDisposeの違い
Visual Basic(VBA)
-
5
VBの「As String * 128」とは?
Visual Basic(VBA)
-
6
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
7
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
8
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
9
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
10
DoEventsがやはり分からない
Visual Basic(VBA)
-
11
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
12
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
13
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
14
FriendとPublicの違い。。。
Visual Basic(VBA)
-
15
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
16
VB.net 引数で配列変数を渡す際の要素数
Visual Basic(VBA)
-
17
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
18
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
19
Visual Basic 6.0 コンボボックスのChangeイベントが発生しません
Visual Basic(VBA)
-
20
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF文、条件分岐の整理方法
-
VBAコードのインデント表示
-
時間短縮のために、テキストフ...
-
Excel VBA 選択範囲の罫線色の...
-
マクロの記録を使用したマクロ...
-
VB.net(VB)で、フォームにExcel...
-
IEを使わないでhtmlテキストを...
-
Excelセルに入力された文字の色...
-
VBAなくなるの?
-
【ExcelVBA】値を変更しながら...
-
VBA 別ブックから条件に合うも...
-
VBAの質問です、複数のテキスト...
-
エクセルのマクロについて教え...
-
ワードVBA どの表か知ることは...
-
エクセルのマクロについて教え...
-
エクセルのVBAコードについて教...
-
エクセルのマクロについて教え...
-
エクセルのVBAコードについて教...
-
エクセルのマクロについて教え...
-
ExcelVBA修正のお願い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBのReturnの使い方
-
${str}と$strの違いとは?
-
流れ図・・・
-
サブルーチンの引数の、呼び出...
-
サブルーチン(共通の処理)の...
-
COBOLの日付操作
-
ExcelVBAでのデータ型変換、も...
-
スカラー変数をチェック
-
Perlの関数の引数について詳細
-
perlの構文でわからない部分が...
-
CGIのサブルーチンの呼び出...
-
Perl・DBIでの汎用selectサブル...
-
Perl実行時のメモリ不足について
-
関数の戻り値に配列は設定できる?
-
foreachでループした変数を他の...
-
FORTRANのwarning
-
定数についての質問です
-
$#{スカラー変数}とは何を意味...
-
my($Str)とmy $Strの違い
-
パターンマチングについて(CGI)
おすすめ情報