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.3
- 回答日時:
No.1さんの「お礼」で示されたページの説明を良く理解してください。
Return "Hello!"
のように書けるのはVB.NETの場合だけです。
VB6ではGoSubに対するReturunであってReturunに戻り値を引数を持つことはできません(関数を脱けるステートメントではない)。
このGoSub-Returunは古いバージョンのVBとの互換性のために残されたものであってVB6での使用は推奨されない。
VBAは詳しくありませんがVB6と同じか実装されていないかもしれません。
ヘルプで確認してください。
回答ありがとうございます。
No.2さんのお礼に書いたとおりです。
私の読解不足でした。
uruzさんの回答も質問に対して十分な回答ですが、
先着順ということで、No.2さんをベストアンサーとさせていただきます。
No.2ベストアンサー
- 回答日時:
VB7以降(=VB.NET以降) では,Returnは戻り値を指定して関数から戻る (またはサブプロシージャから戻る) 機能になっています。
しかし,VB6およびそれ以前や,VBAでは,ReturnはGoSub文で呼び出されたサブルーチンから戻る機能です。
このため,関数の戻り値を指定して関数から戻る目的でReturn文を使うことはできません。
なお,#1さんへのお礼に書かれていたページでは,
・背景が緑のものはVB6用のコード
・背景が青のものはVB.NET用のコード
です。
なるほど。
記事をよく読んでいませんでした。申し訳ないです。
VB7以降では「Return 戻り値」が使えるけれど、VB6以前では使えないということですね。
ありがとうございます。
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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
5
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
6
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
7
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
8
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
9
値を返さないコード パス
Visual Basic(VBA)
-
10
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
11
CloseとDisposeの違い
Visual Basic(VBA)
-
12
FriendとPublicの違い。。。
Visual Basic(VBA)
-
13
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
14
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
15
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
16
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
17
VB.NET 親フォームから子フォームのTextBoxに書き込みたい
Visual Basic(VBA)
-
18
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
19
DoEventsがやはり分からない
Visual Basic(VBA)
-
20
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBのReturnの使い方
-
プロシージャとは
-
ExcelVBAでのデータ型変換、も...
-
$#{スカラー変数}とは何を意味...
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
pythonでファイルのコメント行...
-
CSVファイルの特定の行だけを読...
-
Strawberry Perl for Windows ...
-
DOSコマンドのループ内のTIMEコ...
-
「偶数・奇数の和」のフローチ...
-
vb.netからエクセル関数書き込み
-
VB2010でCSVファイルの読み込み
-
VBAで3秒だけ時間を止めたい
-
DoEventsが必要な理由について
-
英語でのシャープとコメの呼び...
-
For文を使った九九表の作成
-
Do whileでExitせず、ループの...
-
クラスに配列を渡す方法
-
リストボックスに縦スクロール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBのReturnの使い方
-
ExcelVBAでのデータ型変換、も...
-
COBOLの日付操作
-
プロシージャとは
-
サブルーチン(共通の処理)の...
-
RFC822形式の日付を生成するサ...
-
流れ図・・・
-
Perl実行時のメモリ不足について
-
$#{スカラー変数}とは何を意味...
-
Perl・DBIでの汎用selectサブル...
-
${str}と$strの違いとは?
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
おすすめ情報