Excel VBA On Errorステートメントでエラー処理を実装するコード

 

Excel VBA On Error ステートメントは、VBAコードでエラーが発生したときにどのように処理するかを指定します。エラー処理を実装することで、コードがエラーで中断するのを防ぎ、エラーに対する適切な対応を取ることができます。具体的な使い方や、注意点やサンプルコードを紹介します。

 

2025年解消したい。「何度やっても同じミス…Excelマクロで自動化すればゼロにできる!」
👉クリックして、ExcelVBA マクロの情報を断片的に集めるのではなく、体系的に学ぶ

 

Excel VBA On Errorステートメントを利用

以下のようなシーンで利用されます。

・予期しないエラーが発生する可能性がある場合にコードを安全に実行する

・エラーメッセージを表示し、ユーザーに問題を知らせる

・特定のエラーが発生したときに特定の処理を行う

・エラー発生時にクリーンアップ処理を実行する

 

Excel VBA On Errorステートメントの使い方とポイント

使い方

1. On Error Resume Next
エラーが発生しても無視し、次の行から処理を続行します。

2. On Error GoTo ラベル
エラーが発生したら指定したラベルにジャンプし、エラー処理を実行します。

3. On Error GoTo 0
これまでのエラー処理を無効にし、標準のエラー処理に戻します。

 

ポイント

・On Error Resume Next を使用する場合、エラーを無視するため後続のコードが正しく実行されているかを必ず確認する必要があります。

・適切なエラー処理を行わないと、後のコードで予期せぬ動作が発生する可能性があります。

 

Excel VBA On Errorステートメントのサンプルコード

Option Explicit

Sub ExampleResumeNext()
    Dim result As Double
    On Error Resume Next ' エラーを無視し次の行に進む
    
    result = 1 / 0 ' ここでエラーが発生するが無視される
    
    If Err.Number <> 0 Then
        MsgBox "エラーが発生しました: " & Err.Description
        Err.Clear ' エラー情報をクリア
    Else
        MsgBox "結果: " & result
    End If
    
    On Error GoTo 0 ' エラー処理を標準に戻す
End Sub

 

Option Explicit

Sub ExampleGoTo()
    Dim result As Double
    On Error GoTo ErrorHandler ' エラーが発生したらErrorHandlerにジャンプ
    
    result = 1 / 0 ' ここでエラーが発生する
    
    MsgBox "結果: " & result
    Exit Sub ' エラーがなければ正常終了
    
ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description
    ' 必要に応じてクリーンアップ処理
    Err.Clear ' エラー情報をクリア
End Sub

これらの例を使って、エラーが発生した際の挙動を制御し、プログラムの安定性を向上させることができます。

On Error ステートメントを適切に使用することで、ユーザーにとってより使いやすいエラーハンドリングを実現できます。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。