ExcelVBAによる処理において、恐らく最もやっかいなのが、この「オートメーションエラー」。
再現性に一定の規則が見られない場合が多く、開発現場では、何が何でもこの致命的なエラーを回避しなければ、次のステップへ進めませんので、発生傾向を振り返ってみました。
(A)シート操作を延々と繰り返すLOOP
→シートの挿入など
(B)セル操作を延々と繰り返すLOOP
→Copy&Paste
(C)シート関数の不備【循環参照エラー】
例えば、2行目から最下行までのデータの金額を、SUMIFS関数などをシート上のセルに出力する、そんなケースで、Fr行(小さい)→To行(大きい)という絶対的な大小関係が崩れ矛盾が生じる…。
【循環参照】と表示されるので、数式>ERRで確認してみると、原因がわかります。
(D)無限ループなどでメモリを大量消費してしまい発生
これは、特定の場所ではなく、メモリ残量がなくなった時点で発生のため、毎回、落ちる箇所が変わるので、すぐに判明します。
(E)Excelブック、又は、ブック内の特定シートが壊れている場合
どうしても駄目な場合は、怪しいシートを作り直すことで解決する場合があります。
(シートを新規ブックに移行することで解決する場合があります。)
(F)Excelブック内に、大量の「スタイル」が存在するケース
コピペを繰り返すうちに、発生するようですが、明らかに不要と思われるスタイルが大量にある場合は、一旦、マクロで全て削除してしまいましょう。とは言うものの、削除して良いスタイルと、そうでないスタイルが混在する場合もあり、この当たりの判断は何とも言えませんが、その影響にて判断を行うしかありません。
(G)図形オブジェクトが大量に存在するケース
目視チェックでは識別不能な【小さな点オブジェクト】や、【透明】が大量に存在するケースは珍しくありません。
つまり、図形の残骸ですが、検索でチェックすると一目瞭然なので、ブックのサイズがやけに重いと感じたら、点検してみることをオススメいたします。
ざっと、上記のような事が原因で生じるようですので、致命的エラー「オートメーションエラー」回避のご参考になれば幸いです。
Excelエラー解決サービス提供を開始!
本サービスは、緊急性が高く、問題解決を必要とするケースでご利用メリットがあります。