ご使用のExcelのバージョンは2013ですか?
それと、Workbook_BeforeClose(ThisWorkbook 内)やAuo_Close(標準モジュール内)は使用されているでしょうか?
#バージョンが2013になって、MDI→SDIという大きな使用変更があってから、特にユーザーフォームを使用したアプリで従来と挙動が変わってしまい、対応に苦慮されるケースが多いようです。
(参考)Excel 2013 の単一ドキュメント インターフェイスのプログラミング
ところで、ご連携頂いた情報だけでは原因が分からないのですが…不可思議な挙動で嵌った時の自身の経験からすると、まずは処理の流れにおかしな所がないかを再点検してみると良いかもしれません。
お見受けした限りでは、ユーザーフォームを使用し、シート数もモジュール数もそれなりに多い複雑なアプリのようですけれども、モジュールの呼び出し関係が複雑で「不正な処理の流れ」になってしまっていないでしょうか?
文章にすると分かりにくくなってしまうので、A〜Eの5つのモジュールがあった場合について模式的に書くと、赤矢印(→)のように、呼び出し元に戻らずそのまま別のモジュールへ遷移したりそのまま終了しようとしたりすると、「場合によっては」不可思議な動作(一種の暴走)をしてしまい、想定外の結果を示す(予想外のタイミングでイベントが発生する場合も)場合があります。
モジュール数が多かったり処理が複雑だったりすると、原因箇所の特定自体が困難になってしまいますが、
- モジュール間の呼び出し関係をブロック図にして整理してみる
- 処理の一部をコメントアウトしたり、モジュールを一旦エクスポートしてテスト用のダミーに置き換えるなどの措置を取り、「一箇所ずつ戻す」などの方法で怪しい箇所を絞り込む
のような方法で、原因を切り分けてみてはいかがでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/20 11:16