Home » WSH・Windows Script Hostの使い方 » VBScriptでVBAのExit Subのように処理を途中で抜けるには-WScript.Quit

VBScriptでVBAのExit Subのように処理を途中で抜けるには-WScript.Quit

VBA(Visual Basic Application)とVBScriptはよく似ていので、VBAの経験があればVBScriptはそれほど苦労せずに書くことができます。

ですが、別の言語ですから違いは当然あり、些細なことでVBA経験者がつまずくこともあります。

その一つが
「VBScriptでVBAのExit Sub的なコードはどう書けばいいのか」
です。

[スポンサードリンク]

VBAのExit Sub

VBAの場合、以下のようなExit Subステートメントを使って、処理を途中で終了することができます。

Sub sample()

 Dim ret As VbMsgBoxResult
 ret = MsgBox("処理を続けますか?", vbYesNo + vbDefaultButton2)
 
 If ret = vbNo Then
  MsgBox "「いいえ」が押されたので処理を終了します。"
  Exit Sub ''◆ここで処理を抜ける
 Else
  MsgBox "「はい」が押されました。"
 End If
 
 MsgBox "これはIf文のあとに書かれているMsgBoxです。"

End Sub

これと同じつもりで以下のようなVBScriptを書いても、

Option Explicit


Dim ret
ret = MsgBox("処理を続けますか?", vbYesNo + vbDefaultButton2)

If ret = vbNo Then
  MsgBox "「いいえ」が押されたので処理を終了します。"
  Exit Sub
Else
  MsgBox "「はい」が押されました。"
End If

MsgBox "これはIf文のあとに書かれているMsgBoxです。"

以下のようなコンパイルエラーが発生してしまいます。

エラー:	不正な 'exit' ステートメントです。
コード:	800A040F
ソース:	Microsoft VBScript コンパイル エラー

VBScriptで途中で処理を抜けるには

VBScriptで途中で処理を抜けるには、以下のようにWScript.Quitメソッドを使ってください。

Option Explicit


Dim ret
ret = MsgBox("処理を続けますか?", vbYesNo + vbDefaultButton2)

If ret = vbNo Then
  MsgBox "「いいえ」が押されたので処理を終了します。"
  WScript.Quit ''◆ここで処理を抜ける
Else
  MsgBox "「はい」が押されました。"
End If

MsgBox "これはIf文のあとに書かれているMsgBoxです。"
[スポンサードリンク]

Home » WSH・Windows Script Hostの使い方 » VBScriptでVBAのExit Subのように処理を途中で抜けるには-WScript.Quit

「WSH・Windows Script Hostの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.