Vba: エラー時に sub を終了する方法


VBA でExit Subステートメントを使用すると、エラーが発生したときにサブプロシージャを終了できます。

このステートメントを実際に使用する一般的な方法は次のとおりです。

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

この特定のマクロは、範囲A1:A10の各値を範囲B1:B10の対応する値で除算しようとします。

エラーが発生した場合 (たとえば、ゼロで除算しようとしている場合)、 On Error GoToステートメントは VBA にErrorMessageにアクセスするように指示します。これにより、エラーが発生したことをユーザーに通知するメッセージ ボックスを生成し、 Exist Sub を使用してサブプロシージャを終了するように指示されます。 。ステートメント。ステートメント。

次の例は、この構文を実際に使用する方法を示しています。

例: VBA でエラーが発生した場合にサブルーチンを存在させる方法

列 A と B に次の値のリストがあるとします。

ここで、列 A の各値を列 B の対応する値で除算し、結果を列 C に表示する次のマクロを作成するとします。

 Sub DivideValues()

Dim i As Integer

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
End Sub

このマクロを実行すると、次のエラーが表示されます。

Excel シートの 4 行目でゼロで除算しようとしたため、このエラーが発生します。

このエラーが発生したときにサブプロシージャを単に終了したい場合は、次のようにExit Subステートメントを使用できます。

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

このマクロを実行すると、サブプロシージャはエラーが発生する前に考えられるすべての除算問題を実行します。その後、エラーが発生し、VBA がサブプロシージャ内に存在しているだけであることを示すメッセージ ボックスが表示されます。

VBA の出力エラー

: VBA のExitステートメントの完全なドキュメントは、 ここで見つけることができます。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA を使用してフォルダーを作成する方法
VBAを使ってフォルダを削除する方法
VBAを使用してファイルを削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です