なぜか処理が遅くなるときがある

マクロ開発をしていて、ある時開いて動作をさせたら突然動作が遅かった。
その遅さが尋常ではないのでなにがあったのかと慌てた。

システムの不具合も疑って一度Windowsを再起動し、そのブックを開くと全く元の通りとなった。
落ちついて考えるとその作業以前に他の人が作ったあるブックが思い当たった。
試しにそのブックを開くと途端にマクロの速度が遅くなる。
そしてそのブックを閉じると元の動作速度となるということは確認できたが、遅くなった理由はわからなかった。
そのブックはマクロはおろか重い計算式も含んでいないものである。

突き詰めていくとそのブックで使われていた「カメラ」機能のせいと分かった。

再現するためのテストブックを作ったので興味のある人はやってみて欲しい。

loop.xlsmのシートにあるボタンを押すとセルを数字で埋めていく。
おそらく数秒かからないだろう。

続けてカメラ.xlsxを開いて欲しい。ダブルクリックでもメニューの開くでも良い。
その状態でまた先のボタンを押してみて欲しい。
今度は数分かかるのではというくらい目に見えて遅くなったと思う。
もはや使い物にならないレベルの遅さと言えよう。

それにしてもなぜにこれだけ遅くなるのか不思議で仕方が無い。
遅くなる原因となっているブックはマクロすら使っていないのである。
ネットを検索してみると同様の結論に行き着いている人はいるものの、理由は不可解だ。

カメラ機能を一時的に止めるみたいな命令があれば良いのだがどうにも無いようだし、そもそもこの手の制御は「今のブック」しかできない。
「特定の名称の分かっているブック」を制御することはできる。
しかしこれはプログラムからしてみればまったく未知のブックが原因だから回避する手段もない。
comments (2)

コメント

xiaokovacevic.hatenablog.com | 2017/07/31 04:13 PM
When I initially commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get
three e-mails with the same comment. Is there any way you can remove me from that service?
Bless you!
How can I increase my height after 18? | 2017/07/29 05:28 AM
Hello There. I found your blog using msn. This is a very well written article.
I will make sure to bookmark it and return to read more of your useful info.

Thanks for the post. I'll definitely return.

Comment Form