発生した問題
エクセルマクロが突然終了してしまうという問題が発生しました。
毎回発生するわけではなく、3回に1回くらいの割合で発生し、それ以外は問題なく完了します。
エクセル内のインプット情報をもとに、データを自動作成するプログラムで発生したのですが、処理する件数が多くなったときに発生しました。
エラーメッセージなどは出力されずエクセルごと終了してしまいます。
次回エクセルを起動すると何事もなく立ち上がるので、マクロを実行していたことを忘れてしまうほどです。
Windowsのアプリケーションログはエラーが出力されていましたが、原因などの詳細は記載されていませんでした。
解決方法
結論として、エクセルマクロ実行時の画面更新処理を止めることで解消しました。
具体的には、処理の前に画面更新を停止して、プログラムの最後に画面更新を再開します。
'画面更新停止
Application.ScreenUpdating = False
***プログラム処理***
'画面更新再開
Application.ScreenUpdating = True
考察
エラーから得られる情報がなかったので、テキスト出力を仕込んでどの処理で落ちているかを確認しました。
毎回同じところで落ちているわけではなく、どこか特定の処理に問題があるわけではないようでした。
プログラムは、入力情報をもとに複数のマスタを参照してデータを作り込み、出力シートに書き出すというものでした。
特徴として、シートの移動や、セルの参照、書き込みが頻繁に発生する処理でした。
セルに書き込んだ値を参照するという処理もあったので、セルの書き込みが終わっていないうちに参照しに行って落ちていたのではないかと予想しています。
以上です。