0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Excel VBAのソースコードに触らないエラー箇所の見つけ方

Last updated at Posted at 2025-07-13

VBAでマクロが落ちる?「エラートラップ」の使い分けで原因を素早く特定!

※この記事はVBA初級の方向けの記事です。

VBAのエラーハンドリングでエラー箇所が正確にわからないことってありますよね。
調査するためには、on errorをコメントアウトするなどの変更を加えないといけません。
私自身も、運用の現場でVBAにまだ不慣れだった頃、
エラーの原因が全然わからなくて苦労した記憶があります。
VBAを始めたばかりの頃は、エラーが怖くてコードを触るのも億劫でした。

そんな時に便利なのが「エラートラップ設定」

実は、VBE(Visual Basic Editor)の設定で「エラー検知の挙動」を変更できるって知ってましたか?

それがこちらの「エラートラップ」の設定画面です。
何も触らないと下記画面になっています。
VBE上で「ツール」→「オプション」→「全般」タブを開くと見つかります
image.png

image.png

image.png

エラートラップの3つのモード
ここで選べる3つのモードについて、それぞれ解説していきます。

1. エラー発生時に中断(推奨)

On Errorがあっても無視して、その場で止まってくれるモード

デバッグには最も便利

マクロが「どこで落ちたのか」が一発で分かる!

image.png

2. クラス モジュールで中断

通常のモジュールでは On Error が効く

クラスモジュール内でエラーが起きた場合だけ中断してくれる

オブジェクト指向的にVBAを書いてる人向け(中〜上級者用)

image.png

3. エラー処理対象外のエラーで中断(デフォルト)

エラーハンドリング(On Error)が書かれている箇所では止まらず、処理を続ける

そのため、On Errorの中でうまく処理できないと、原因が見つけにくい…

運用環境ではこの設定が多いですが、開発中は避けた方が無難です。

image.png
 

まとめ

マクロが黙って終了してしまうときは、まず「エラートラップ設定」を見直してみよう!

ソースを変更せずにエラー位置を調査したいときは、「エラー発生時に中断」が超便利

On Error のコメントアウトや置換作業よりも安全&手軽

VBAのエラーって、なかなか一筋縄ではいかないですよね。
でも「エラートラップ設定」を理解して使い分けるだけで、デバッグ効率が大きく変わります。

エラーを見つけたいときにぜひ試してみてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?