
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エキスパート」をご確認ください。