• ベストアンサー

EndとExit Subの違い

Sub test1() MsgBox "test1" Exit Sub End Sub Sub test2() MsgBox "test2" End End Sub の違いはありますか? 只の表現の違いなのでしょうか? よろしくお願いします。

noname#150498
noname#150498

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

Exit Sub はsubから抜けるだけです。このsubを呼び出したprocedureに戻ります。プログラムが終了するわけではありません。 end はプログラムを終了させます。終わりです。 ヘルプ Exit Sub このステートメントのある Sub プロシージャを直ちに抜けます。制御は Sub プロシージャを呼び出したステートメントの次のステートメントに移ります。 End プログラムの実行を終了させます。この場合、End ステートメントは必ずしも必要ではありませんが、プロシージャ内の任意の場所に指定できます。コードの実行を終了させたり、Open ステートメントで開いたファイルを閉ることができます。また、変数の値をクリアすることもできます。

noname#150498
質問者

お礼

なるほど! endは全てを終了させるのですね! ご回答ありがとうございます。

関連するQ&A

  • If文中のExit Sub

    Dim i As String i = TextBox1.Value If i ="" Then MsgBox "入力なし" Exit Sub End If Exit Subは何の意味が有るのでしょう? Exit Subを調べたり試したりしたのですが、良く、解りません。 宜しくお願い致します。

  • Subステートメント と Subプロシージャ の違いは?

    Subステートメント と Subプロシージャ は何が違うのですか? 例えば Sub test() MsgBox "a" End Sub これは、 Subステートメントですか? Subプロシージャですか?

  • Functionとsub どちらを使った方がいいで

    Functionとsub どちらを使った方がいいですか? VBA初心者です。 ------------------------ Sub test1() MsgBox "testです" End Sub Function test2() MsgBox "testです" End Function ------------------------ どちらのコードも結果は同じです。 基本的に、マクロを組む時は、Functionとsubとどちらを使った方が良いのでしょうか? ------------------------ Sub tset3() MsgBox test4 End Sub Function test4() test4 = "testです" End Function ------------------------ のように戻り値・返り値がある場合のみFunctionを使うべきなのでしょうか? ご回答よろしくお願いします。

  • ExcelのマクロでのExit Subの役割とは

    久しぶりに Excel のマクロについて 質問させていただきます。 実際に作ったマクロはとても長いのですが 問題となった部分を簡潔にまとめて記載します。 Sub test() Range("A1") = 0 入力 = Application.InputBox("入力") If 入力 = "a" Then Call test End If Call test2 End Sub Sub test2() Range("A1") = Range("A1") + 1 End Sub これにより 「a」を入力している限りは先へ進めず 「a」以外を入力したところで セルA1に「1」と表示させるつもりでした。 しかし実際には 「a」を入力した回数プラス1が セルA1に表示されてしまいます。 仕方がないので Call test の後に Exit Sub と入力したところ、希望通り セルA1には「1」と表示されました。 Exit Sub を入力しなくても 何度も test() に戻るだけで Range("A1") に影響するのは、最後の Call test2 による1回だけと思うのですが なぜこのような結果になるのでしょうか。 今回もマクロについては まだまだ素人だと痛感しているところです。 回答をよろしくお願いいたします。

  • Exit Subのような・・・。

    C++Builderを使用しています。 前にVB.NetでExit Subが便利でよくつかっていたので C++Builderにもないかなと探したのですが、わかりませんでした。 Exit Subのような働きをするものがC++Builderに ないとは思えないのですが・・・。 あれば教えてください!お願いします。

  • エクセル/マクロ Exit Subが実行されない

    エクセルマクロの質問です。エクセルのヴァージョンは2000です。 あるシートをコピーして新シートに任意の名前を付けるマクロを作っています。ユーザーフォームの中に一つのテキストボックス(新シートの名前入力用)と二つのコマンドボタンを設置し一つは実行ボタン、もう一つはキャンセルボタンとしました。 QNo.6367227でエラー処理に関する質問をさせていただきましたが、こちらは見事に解決していただきました。 今回の質問はExit Subに関する質問です。 If構文で、条件文1が真であればシートをコピーして名前を変更、フォームを閉じるという処理を目指しています。 If 条件 Then ~ 処理 Exit Sub という形を作って試してみたのですが、処理後にExit Subが実行されません。Exit Subの前にメッセージボックスを挿むとメッセージは表示されましたが、やはりExit Subにはたどり着けませんでした。 すごく初歩的な事で恥ずかしいのですが、Exit Subが実行されない理由と解決法をご教示いただけると助かります。よろしくお願いします。 Private Sub CommandButton1_Click() Dim NewSheetName As String NewSheetName = TextBox1.Value On Error Resume Next Sheets("Summary").Name = NewSheetName If Err.Number = 0 Then Sheets(NewSheetName).Copy before:=Sheets(NewSheetName) ActiveSheet.Name = "Summary" MsgBox ("Task Completed!") ExitSub Else MsgBox "Invalid name!" End If On Error GoTo 0 End Sub

  • Exit Subでコードを抜け出したい

    If textbox.value "" Then X1 = textbox.Value For i = 1 To 100 X2 = ws.Cells(i, 1).Value If X1 = X2 Then Holder = i Exit For End If If X1 <= X2 Then Holder = i Exit For End If Next i End If 上記のようなコードがあります。textboxというテキストボックスの中の文字列とExcelのセルの文字列を比較して処理を行いたいと思っています。X1=X2、もしくはX1 <=X2の時ループを抜けます。 これに追加して、X1=X2、X1<=X2以外にこれにあてはまらない文字列がある場合は処理を中止してexit subをしたいと思っています。 わからないのは、ExcelのセルのA列から100行を検索して、その結果上記の二つの条件を満たさない場合は"データがありません"でexit subをしたいと思っています。どこにexit subで抜けるようなコードを追加すればよいでしょうか?

  • マクロ subプロシージャーは指定できない?

    accessのマクロの アクション:プロシージャの実行 は、 subプロシージャーは指定できないのでしょうか? 標準モジュールに Sub test1() MsgBox "プロシージャーの実行のテストです" End Sub Function test2() MsgBox "プロシージャーの実行のテストです" End Function と作り、 マクロのプロシージャの実行で プロシージャ名をtest2()にすると、うまく表示されますが、 test1()だと、失敗します。 subプロシージャーをマクロで呼び出す方法を教えてください。

  • Exitやendは、メソッドですか?

    vbaで使う、 Exitやendは、メソッドですか? プロパティ・イベントではないですよね?

  • 二つの違い・どちらを使った方がいいでしょうか?

    Sub test1() Dim a As String a = MsgBox("aaa") End Sub Sub test2() MsgBox "aaa" End Sub どちらもメッセージを表示させられるのですが コードを書く際はどちらを使った方がいいのでしょうか? 独学のためよくわかりません。 宜しくお願いいたします。

専門家に質問してみよう