Global Trend Radar
Web: qiita.com US web_search 2026-05-01 08:38

【実務VBA⑤】エラー処理の基本と実践|On Error完全解説 #Excel - Qiita

元記事を開く →

分析結果

カテゴリ
防災
重要度
46
トレンドスコア
10
要約
【実務VBA⑤】エラー処理の基本と実践|On Error完全解説 #Excel - Qiita 0 いいねしたユーザー一覧へ移動 0 X(Twitter)でシェアする Facebookでシェアする はてなブックマークに追加する more_horiz 記事を削除する close 一度削除した記事は復旧できません。 この記事の編集中の下書きも削除されます。 削除してよろしいですか? キャンセル 削除する delete @ SoulAutoL
キーワード
【実務VBA⑤】エラー処理の基本と実践|On Error完全解説 #Excel - Qiita 0 いいねしたユーザー一覧へ移動 0 X(Twitter)でシェアする Facebookでシェアする はてなブックマークに追加する more_horiz 記事を削除する close 一度削除した記事は復旧できません。 この記事の編集中の下書きも削除されます。 削除してよろしいですか? キャンセル 削除する delete @ SoulAutoLab ( Soul ) 【実務VBA⑤】エラー処理の基本と実践|On Error完全解説 Excel VBA 自動化 マクロ 0 最終更新日 2026年04月29日 投稿日 2026年04月29日 はじめに VBAで業務ツールを作っていると、必ず遭遇するのが「エラー」です。 実行したら突然止まる 意味不明なエラーメッセージ 原因がわからず作業が止まる こうした問題に対処するために必要なのが**エラー処理(エラーハンドリング)**です。 本記事では、実務で必須となる On Errorの使い方と実践的な書き方をわかりやすく解説します。 目次 VBAのエラー処理とは On Errorの基本構文 On Errorの3つの使い方 実務で使う標準テンプレート よくあるNG例 実務で使えるサンプル まとめ 1. VBAのエラー処理とは VBAはエラーが発生すると、その場で処理が停止します。 例えば: ファイルが存在しない シート名が間違っている 0で割り算をした エラー処理を書いていないと マクロは途中で止まり、ユーザーは何もできなくなります。 そのため、実務では必ずエラー処理を実装します。 2. On Errorの基本構文 VBAのエラー処理は、"On Error"構文で行います。 基本形 Sub Sample() On Error GoTo ErrHandler ' ===== 通常処理 ===== MsgBox "正常終了" Exit Sub ErrHandler: MsgBox "エラー発生:" & Err.Description End Sub ポイント "On Error GoTo"でエラー時のジャンプ先を指定 "Exit Sub"を必ず書く(重要) "Err"オブジェクトでエラー情報を取得 3. On Errorの3つの使い方 ① On Error GoTo(基本・推奨) エラー発生時に指定ラベルへジャンプ On Error GoTo ErrHandler 実務では基本これを使う エラー処理を一箇所にまとめられる ② On Error Resume Next(注意が必要) エラーが出ても無視して次へ進む On Error Resume Next NG例(危険) エラーが発生しても気づかない On Error Resume Next result = 10 / 0 正しい使い方(限定用途) 「存在チェック」など限定的に使う On Error Resume Next Set ws = Worksheets("Sheet1") On Error GoTo 0 If ws Is Nothing Then MsgBox "シートが存在しません" End If ③ On Error GoTo 0(リセット) エラー処理を解除(デフォルトに戻す) On Error GoTo 0 4. 実務で使う標準テンプレート これを覚えるだけでOK(超重要) Sub Sample() On Error GoTo ErrHandler ' ===== メイン処理 ===== Dim ws As Worksheet Set ws = Worksheets("Sheet1") ws.Range("A1").Value = "OK" Exit Sub ErrHandler: MsgBox "エラー番号:" & Err.Number & vbCrLf & _ "エラー内容:" & Err.Description End Sub 5. よくあるNG例 • Exit Subを書いていない 正常時でもエラー処理が実行される On Error GoTo ErrHandler MsgBox "正常終了" ErrHandler: MsgBox "エラー" • Resume Nextの乱用 全てのエラーを無視してしまう(危険) On Error Resume Next • エラーをユーザーに知らせない 実務ではNG 必ずメッセージ or ログ出力する 6. 実務で使えるサンプル ファイルオープン処理 Sub OpenFile() On Error GoTo ErrHandler Workbooks.Open "C:\test.xlsx" MsgBox "ファイルを開きました" Exit Sub ErrHandler: MsgBox "ファイルが存在しないか、開けません" End Sub シート存在チェック Function WorksheetExists(name As String) As Boolean Dim ws As Worksheet On Error Resume Next Set ws = Worksheets(name) On Error GoTo 0 WorksheetExists = Not ws Is Nothing End Function 0除算防止 Sub Calc() On Error GoTo ErrHandler Dim result As Double Dim divisor As Double divisor = 0 If divisor = 0 Then MsgBox "0では割れません" Exit Sub End If result = 10 / divisor Exit Sub ErrHandler: MsgBox "計算エラー" End Sub 7. まとめ VBAのエラー処理は、実務では必須スキルです。 本記事のポイント: "On Error GoTo"を基本として使う "Resume Next"は限定的に使う 必ず"Exit Sub"を書く エラー内容はユーザーに通知する このパターンを覚えるだけで、 実務のトラブル対応力が大きく向上します。 おわりに エラー処理が書けるようになると、 VBAは「動くコード」から「使えるツール」に変わります。 実務VBAシリーズ 第1回:複数Excelファイルを自動集計する方法 第2回:Dictionaryで売上データを集計する方法 第3回:100万行Excelを3秒で処理する方法(高速化完全ガイド) 第4回:現場で使えるVBA便利ツール5選 第5回:エラー処理の基本と実践|On Error完全解説(今回) 0 いいねしたユーザー一覧へ移動 0 comment 0 コメント一覧へ移動 新規登録して、もっと便利にQiitaを使ってみよう あなたにマッチした記事をお届けします 便利な情報をあとで効率的に読み返せます ダークテーマを利用できます ログインすると使える機能について 新規登録 ログイン 0 いいねしたユーザー一覧へ移動 0 more_horiz 記事を削除する close 一度削除した記事は復旧できません。 この記事の編集中の下書きも削除されます。 削除してよろしいですか? キャンセル 削除する delete

類似記事(ベクトル近傍)