みなさんも、今日はWordの調子が悪いな、と思われることありませんか?
いつもならうまくいくはずのマクロが、なぜか今日は仕事をしてくれない、みたいな。
このようなことを書くと、Wordマクロへの信頼性が損なわれるようで残念ですが、これが現実です。
私も、こういう状況に陥ってしまい、多くの時間を費やして原因解明をして参りました。
で、私がわかっている「よくある原因」とその「対処方法」が一つあります。
それを今回ご紹介します。
マクロの実行が不安定になる要因として考えられること
Selectionオブジェクトを用いて、カーソルの移動を伴うループ処理をする場合に、パソコンに負担がかかってしまい、メモリを使う結果、どうやらWordの調子が悪くなるようです。
カーソルの移動があると、Wordが描画処理をしなくてはならないのですが、それがカーソルの移動に追いつかなくなってしまい苦しくなってギブアップするみたいな状況です。
画面のちらつきが起こるときがありますよね。これが、カーソルが移動しているときにおこる現象です。
予防方法(1)
画面のちらつきが起こらないように、以下のコードをプログラムの最初と最後に入れます。
プログラムの最初に、
Application.ScreenUpdating = False
と書きます。
プログラムの最後に
Application.ScreenUpdating = True
と書きます。
このことで、画面の描画処理がなくなりますので、パソコンの負担が軽減されます。
また、処理スピードも向上しますので、お試しください。
予防方法(2)
そもそも、カーソル移動が伴わないようにマクロを記載すればいいのです。
こちらは少し上級者向けのテクニックですね。
検索や置換の場合には、オブジェクト変数にRangeオブジェクトを設定して、このRangeオブジェクトで検索や置換を行います。
細かな説明は割愛します。
不安定になったときの対処方法
では、Wordの調子が悪くなったときにはどうするのでしょうか。
いつものマクロが命令通りに動いてくれないときがあります。
そのときは、Wordを再起動させてください。
これでだいたいの場合、元に戻ります。
プログラムのコードを調べて何が間違っているのかをひたすら探すよりも、案外解決の近道だったりします。
私も、プログラムが意図したとおり動かない場合で理由がわからない時には、Wordの再起動をして再度試すようにしています。
プログラムを読んで考えることは大切です。
でも、どうしてもわからない場合には、Wordの再起動も一つの選択肢にいれておいてください。
▼関連記事
▼アドインの紹介
ぱらぱら
(一括置換翻訳の支援ソフト)
右クリックでGoogle!
(Wordからオプション設定のGoogle検索)
右クリックでBing!
(Wordからオプション設定のBing検索)
ホントのフォント
(書式情報を見える化)
頻度のヒント
(語句の使用頻度を調べます)