ExcelVBA やっかいな「オートメーションエラー」


エラーメッセージ

ExcelVBAによる処理において、恐らく最もやっかいなのが、この「オートメーションエラー」。
 
再現性に一定の規則が見られない場合が多く、開発現場では、何が何でもこの致命的なエラーを回避しなければ、次のステップへ進めませんので、発生傾向を振り返ってみました。
 

(A)シート操作を延々と繰り返すLOOP
→シートの挿入など
 
(B)セル操作を延々と繰り返すLOOP
→Copy&Paste
 
(C)シート関数の不備【循環参照エラー】
例えば、2行目から最下行までのデータの金額を、SUMIFS関数などをシート上のセルに出力する、そんなケースで、Fr行(小さい)→To行(大きい)という絶対的な大小関係が崩れ矛盾が生じる…。

【循環参照】と表示されるので、数式>ERRで確認してみると、原因がわかります。
 
(D)無限ループなどでメモリを大量消費してしまい発生
これは、特定の場所ではなく、メモリ残量がなくなった時点で発生のため、毎回、落ちる箇所が変わるので、すぐに判明します。
 
(E)Excelブック、又は、ブック内の特定シートが壊れている場合
どうしても駄目な場合は、怪しいシートを作り直すことで解決する場合があります。
(シートを新規ブックに移行することで解決する場合があります。)
 
(F)Excelブック内に、大量の「スタイル」が存在するケース
コピペを繰り返すうちに、発生するようですが、明らかに不要と思われるスタイルが大量にある場合は、一旦、マクロで全て削除してしまいましょう。とは言うものの、削除して良いスタイルと、そうでないスタイルが混在する場合もあり、この当たりの判断は何とも言えませんが、その影響にて判断を行うしかありません。
 
(G)図形オブジェクトが大量に存在するケース
目視チェックでは識別不能な【小さな点オブジェクト】や、【透明】が大量に存在するケースは珍しくありません。
つまり、図形の残骸ですが、検索でチェックすると一目瞭然なので、ブックのサイズがやけに重いと感じたら、点検してみることをオススメいたします。
 
ざっと、上記のような事が原因で生じるようですので、致命的エラー「オートメーションエラー」回避のご参考になれば幸いです。
 
Excelエラー解決サービス提供を開始!

本サービスは、緊急性が高く、問題解決を必要とするケースでご利用メリットがあります。

関連する記事

全国対応!お気軽にお問い合わせください