End ステートメント

直ちに実行を終了します。

構文

End  

Remarks

プロシージャの任意の場所に End ステートメントを配置して、アプリケーション全体の実行を強制的に停止することができます。 End によって、Open ステートメントを使用して開いたファイルがすべて閉じられ、アプリケーションのすべての変数がクリアされます。 オブジェクトへの参照を保持している他のプログラムがなくなり、そのコードが実行されなくなると、アプリケーションはすぐに終了します。

注意

End ステートメントを使用すると、コードの実行は突然停止され、Dispose または Finalize メソッド、またはその他の Visual Basic コードは呼び出されません。 他のプログラムに保持されているオブジェクト参照は無効になります。 Try または Catch ブロック内に End ステートメントが存在すると、制御は対応する Finally ブロックには渡されません。

Stop ステートメントでは実行が中断されますが、End とは異なり、コンパイル済みの実行可能 (.exe) ファイルで検出されていない限り、ファイルを閉じたり、変数をクリアしたりしません。

End を使用すると、開いている可能性のあるリソースを処理することなくアプリケーションが終了するため、使用する前に完全に終了するようにします。 たとえば、アプリケーションでフォームを開いている場合は、コントロールが End ステートメントに到達する前にフォームを閉じる必要があります。

End は慎重に使用し、すぐに停止する必要がある場合にのみ使用してください。 プロシージャを終了する通常の方法 (Return ステートメントExit ステートメント) では、プロシージャが完全に終了されるだけでなく、呼び出し元のコードにも正常に終了する機会が与えられます。 たとえば、コンソール アプリケーションでは、Main プロシージャから単に Return を実行できます。

重要

End ステートメントを使用すると、System 名前空間内の Environment クラスの Exit メソッドが呼び出されます。 Exit を使用するには UnmanagedCode アクセス許可が必要です。 そうしないと、SecurityException エラーが発生します。

その後に追加のキーワードが続く場合、End <キーワード> ステートメントを使用して、適切なプロシージャまたはブロックの定義の終わりを示します。 たとえば、End Function を使用して Function プロシージャの定義を終了します。

次の例では、End ステートメントを使用して、ユーザーから要求された場合にコードの実行を終了します。

Sub Form_Load()
    Dim answer As MsgBoxResult
    answer = MsgBox("Do you want to quit now?", MsgBoxStyle.YesNo)
    If answer = MsgBoxResult.Yes Then
        MsgBox("Terminating program")
        End
    End If
End Sub

スマート デバイス開発者向けのメモ

このステートメントはサポートされていません。

関連項目