マクロを実行したら、グレーのダイアログが出た。赤い×アイコン。黄色くハイライトされた行。番号と見慣れない言葉が並ぶエラーメッセージ。
「何もしていないのに壊れた」と感じて、そのまま閉じてしまった——そんな経験はありませんか?
エラーが出るのを怖がる理由は、エラーを「失敗」として受け取っているからです。エラーはVBAが「ここに原因がありますよ」と教えてくれているメッセージです。読み方を覚えると、エラーは「怖いもの」から「頼りになる道しるべ」に変わります。
この記事では、次のことを解説します。
- エラーを怖がる3つの理由
- エラーメッセージの読み方
- エラーが出たときの対処の流れ
なぜエラーが怖くなるのか——3つの理由
① エラーを「失敗」として受け取っている
エラーが出ると「やってしまった」「何か壊れた」と感じる人が多いです。でも、VBAのエラーはデータやファイルを壊すものではありません。
エラーとは「この処理はできません」というVBAからの報告です。原因を取り除けば、何事もなかったように動きます。エラーは失敗の証拠ではなく、原因を教えてくれる情報です。
② エラーメッセージの意味が分からない
「実行時エラー ‘1004’: アプリケーション定義またはオブジェクト定義のエラーです」
このような文章を見ても、何が原因なのか分かりにくいです。専門的な言葉が並んでいて、読む気になれない。その結果、メッセージを閉じて「なかったことにする」という行動につながります。
でも、エラーメッセージには必ず原因が含まれています。エラー番号と一言の説明を手がかりに、原因を絞り込むことができます。
③ どこを直せばいいか分からない
エラーが出てもコードのどこが原因なのか、特定できないことがあります。コードが長くなるほど、原因箇所を見つけにくくなります。
このときに使うのがF8キーのステップインです。一行ずつコードを動かすことで、どの行でエラーが発生するかをピンポイントで確認できます。「どこで止まるか」が分かると、原因の9割は特定できます。
エラーが出たときの対処の流れ
ステップ① エラーメッセージを読む
エラーが出たらまず、メッセージをすぐに閉じないでください。「デバッグ」ボタンを押すと、エラーが発生した行が黄色くハイライトされます。
エラーメッセージには番号と説明が書かれています。よく出るエラーの意味を覚えておくと、原因を絞り込むのが一気に速くなります。
| エラー番号 | 意味 | よくある原因 |
|---|---|---|
| 実行時エラー ‘9’ | インデックスが有効範囲にありません | 存在しないシート名・配列の範囲外 |
| 実行時エラー ’13’ | 型が一致しません | 数値のはずが文字列だった |
| 実行時エラー ‘1004’ | アプリケーション定義またはオブジェクト定義のエラー | 存在しないセル範囲・シートの指定ミス |
ステップ② F8で原因の行を特定する
エラーが出た行が分かったら、F8キーで一行ずつ動かして確認します。エラーが出た行の「何が問題か」を見ていきます。
変数の値はカーソルを変数名の上に置くと表示されます。「思っていた値と実際の値が同じか」を確認するだけで、多くのエラーは原因が見えてきます。
ステップ③ エラーメッセージで検索する
エラーメッセージの番号や文言をそのままネットで検索すると、同じエラーに直面した人の解決策が見つかります。「実行時エラー ‘9’ VBA シート名」のように、状況を加えて検索するとより精度が上がります。
まとめ
エラーが出るのを怖がる理由は、エラーを「失敗」として受け取っているからです。
- エラーは失敗ではなく情報——原因を教えてくれるメッセージ
- エラーメッセージを読む——番号と説明が原因を絞り込む手がかりになる
- F8で原因の行を特定する——「どこで止まるか」が分かれば9割解決できる
エラーは、VBAを使い続ける限りなくなりません。でも、エラーと向き合う方法を知っていれば、怖くなくなります。「エラーが出た」ではなく「エラーが教えてくれた」と思えるようになると、デバッグが楽しくなります。
よくある質問
Q. 「デバッグ」ボタンと「終了」ボタン、どちらを押せばいいですか?
原因を調べたいときは「デバッグ」を押してください。エラーが出た行が黄色くハイライトされ、そこから原因を確認できます。「終了」を押すとエラーを閉じるだけで、原因が分からないままになります。
Q. エラーが出てもデータは壊れませんか?
VBAのエラーでデータが壊れることは基本的にありません。エラーが出た時点で処理が止まるため、意図しない変更がそれ以上加わりません。ただし、エラーが出る前に一部のデータが変更されている場合があります。重要な作業の前はファイルのバックアップを取る習慣をつけてください。
Q. 同じエラーが繰り返し出ます。どうすればいいですか?
エラーが繰り返し出る場合は、根本的な原因がまだ解決されていない状態です。F8で一行ずつ動かして、どの行で毎回エラーが出るかを確認してください。その行が何をしているかを調べることが、解決への近道です。
Q. On Error Resume Nextを使えばエラーを無視できると聞きました。
使えますが、初心者のうちは避けることをおすすめします。On Error Resume Nextはエラーを無視して処理を続けるため、本来気づくべき問題を見逃してしまいます。エラーの読み方と対処法を身につけてから使うようにしてください。
エラーと向き合いながら、実務で使えるVBAを体系的に学びたい方は、JIMOVEの動画講座をご覧ください。
動画で学びたい方へ
「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。
VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。



