エクセルのマクロが正常に動かない

最近のエクセルで、「原因不明の挙動不審」がめだつようになりました。
Excel2013あたりからか、2016あたりだったか。

「以前はちゃんと動作していたのに、
とつぜんおかしな結果をだすようになった」

「ステップイン([F8]キー)で1行ずつ実行すると大丈夫なのに、
一気に実行するとエラーになる」

こんなときは、「パソコンの処理速度とのタイミングエラー」が考えられます。
以前より、メモリをたくさん食うようになったことや、
セキュリティの関係でファイルの読み書きに時間がかかるようになったこと。
そのあたりが原因かな、と想像していますが、真相はわかりません。

 

そんなときは、次の方法を試してみてください。

1.挙動不審の発生箇所を特定する
VBEで、F8(ステップイン)やCtrl+F8(カーソル位置手前まで実行)などを使って、
おかしな出力を発生する箇所、またはあやしい箇所を、発見します。

 

2.CutCopyModeをFalseに
問題箇所の直前で、コピペなどをして範囲選択状態の場合は、
直後に次の1行を入れて、範囲選択を解除しておきます。
Application.CutCopyMode = False

 

3.Wait
2でも改善しないとき、
あるいは、問題箇所の直前でファイルの読み書きをしている場合は、
直後に次の1行を入れて、時間的な猶予を与えてあげます。
Application.Wait Now() + TimeValue(“00:00:03”)

上記は「3秒待ち」で、秒数は様子を見て設定します。