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

 

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

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

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

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

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エキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問