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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
5
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
6
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
7
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
8
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
9
値を返さないコード パス
Visual Basic(VBA)
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
12
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
13
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
14
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
15
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
16
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
17
演算子が DBnull 及び integerに対して有効でない
Visual Basic(VBA)
-
18
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
19
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
20
VBの「As String * 128」とは?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBのReturnの使い方
-
${str}と$strの違いとは?
-
アクティブセルから、A列最終行...
-
画面を強制的に再描画させる方法
-
どなたかこのプログラミングを...
-
ハッシュ検索はなぜ速い
-
乱数の桁数指定、または範囲指定。
-
アセンブラによるウェイト(WAIT...
-
VBA for i=1 to lastrow
-
VBAでの一時停止と再開の方法
-
一意(ユニーク)かつ、ソート...
-
Dim flag(4) as boolean で配列...
-
Excel VBA ユーザーフォームの...
-
alarmの使用について
-
For文を使った九九表の作成
-
Perlは戻り値で、ハッシュや配...
-
「偶数・奇数の和」のフローチ...
-
UWSCの終了の仕方
-
EXCEL VBA(初心者)印刷ルー...
-
テキストボックスの名前に変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBのReturnの使い方
-
ExcelVBAでのデータ型変換、も...
-
Perl実行時のメモリ不足について
-
COBOLの日付操作
-
RFC822形式の日付を生成するサ...
-
FORTRANのwarning
-
COBOLから呼ばれる時
-
サブルーチン(共通の処理)の...
-
$#{スカラー変数}とは何を意味...
-
パターンマチングについて(CGI)
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
データベースでユーザーのパス...
-
ループ7回目の悪役令嬢は、元敵...
-
UWSCの終了の仕方
-
Escキーを押すと、中断する時と...
-
エクセルの当番表を作っていま...
-
GIFアニメをループさせたくない
-
VBAで3秒だけ時間を止めたい
-
どなたかこのプログラミングを...
おすすめ情報