こんにちは。 私は、別案というよりも、コーディングの基本の基本ですが、On Error トラップ(On Error Goto xx) というものは、最後につけるもので、製作中にトラップを置いたら、どこでエラーが出たか分かりません。 出来上がっている場合は、デバッグのステップインで、短い場合は、どこでマクロが飛ぶのか調べます。もしくは、ブレークポイントを段階的につけていき、どこまでは、OKか調べます。 コンパイル後に起こるのですから、[実行時エラー]だと思いますから、それなり見当はつくはずです。 もう一つ、コーディングの基本的なことですが、コードの行数は増やさずに、サブルーチンを増やすことです。一般的には、100行以下と言われています。 私は、ずっと、そのようにしてきています。
![VBAのエラー発生場所をメッセージBOXに表示](https://cdn-ak-scissors.b.st-hatena.com/image/square/a73abc454de4aaacb370bad26db2312eacbc7375/height=288;version=1;width=512/https%3A%2F%2Foshiete.xgoo.jp%2Fimages%2Fsp%2Fqa_recommend%2F2101_2.jpg)