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

 

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

 

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のスキルを証明できるようにしませんか? Excel VBA エキスパート資格は、VBAプログラミングの専門家としての信頼性を高めキャリアの成長に大きく貢献し、求人市場での競争力を高め、キャリア機会を拡大します。

 

当サイトでは、Excel VBAエキスパート認定資格取得に役立つ情報を提供しています。まずは問題集から挑戦してみませんか?

 

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


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

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