数年前に作ったVBAの改修の依頼があり、動作を確認していたところ、謎の現象が出現。
取り敢えず、指摘された現象が起きるか元のまま動かしていたところ、しばらく動いたあと、何でもないと思われるところでバコッいきなり落ちる。
因みに、バコッと音はしないんだけど。
アプリが応答しないとかのメッセージもなく、何事もなかったようにいきなりディスクトップ上から消えてなくなる。
PCのせいかと思い、再起動してやってみても、結果は同じ。
ただ、落ちるタイミングは、違うところ。
数年前に作ったプログラムで、ずっと動いていたんはずで、依頼にも途中で落ちるなんてことは言われていない。
違いと言えば、Office 2019だったのが、最近Office 365に変わったこと。
困ったなと思いながら、デバッガを立ち上げブレークを張りながら実行すると、最後まで実行することが出来た。
途中、タスクマネジャでメモリの様子とかも見てみたけど、逼迫しているようでもない。
普通に動かないんじゃ、修正も出来ない。
プログラムは、まず必要なファイルをシートに読込み、それを元に印刷用のデータを200枚前後作るというもの。
ファイルを読み込み終わるまでに落ちることは無いことが分かった。
ループして、印刷用のデータを作るところの不特定なタイミングで落ちている模様。
色々考えても原因がわからない。
ネットにも、それらしい事象は出ていない。
苦肉の策で、結構時間がかかっているForループ内に、何か所かDoEventsを突っ込んでみた。
すると、落ちずに最後まで動くようになった。
制御をOSに渡さないせいで不具合が起きているんだろうね。
Office 2019のときは大丈夫だったのに...。
取り敢えず動くようになったので、修正を始めることが出来た。
--
No comments:
Post a Comment