- ベストアンサー
マクロ画面更新停止方法
- マクロを実行する際に画面のチカチカを停止する方法について教えてください。
- マクロを実行すると画面がチカチカするため、画面更新を停止したいと思います。具体的には、Application.ScreenUpdatingプロパティをFalseに設定することで画面の更新を停止することができます。
- マクロを実行する際に画面のチカチカが気になる場合は、Application.ScreenUpdatingプロパティをFalseに設定することで画面の更新を停止することができます。マクロの実行が完了した後には、再びTrueに設定することで画面の更新を再開することができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
だったら、呼び出されるCallのプログラムの中に、ScreenUpdatingが 入ってるんじゃないですかね? で、その中のTrue/Falseが変に効いて いるんじゃないかと。 Callの中のScreenUpdatingをすべてコメントアウトしてみてください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
#2の補足を見ました。 >どこにどのように入れたらよいのかわかりません という質問表現は不適当ではないですか? >入れているが、画面がちらつく、という風に(原因探究式に)書かないとダメでしょう。 Googleで「screenupdating false 効かない」で照会したら出てくる記事を当たったら。 Callで中身のコードが判らないから、チェックしようがない。 入れる場所を、Call単位でずらしていって、チカチカするコードの箇所を探し、どこかに問題(すでに=Falseが)入っていないかしらべたら。
お礼
不適当な質問をしてしまい、申し訳ありません。 「screenupdating false 効かない」 で検索してみます。 ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
なぜこんな質問だ出るのかな。 >どこに コードの1番はじめ sub test01() のあとへ Application.ScreenUpdating = False そして End Subの直前に Application.ScreenUpdating =True を入れる、 例がよく載っているが、 これで(1)都合の悪い場合を経験したか、(2)頭で都合が悪い場合を予想できるのか。 処理の中身によると思うが、処理を止めて画面を確認したい場合のほかはあまり使う必要はないと思うが。 途中でも両者ペアであれば何回でもどこでも入れられるのでは。 これはVBAでしか実現しない。画面の手操作には、なかったはず。 プログラムで処理する早い変化以外は、画面変化は必要ないスピードを実現しているということだろう。 余り突飛な質問と思うが小生が浅はかなのかな。
補足
一度、回答者様のおっしゃるように、 sub test01() のあとへ Application.ScreenUpdating = False そして End Subの直前に Application.ScreenUpdating =True をしてみましたが、変化がなかったので、こちらで質問させていただきました。
- FEX2053
- ベストアンサー率37% (7991/21371)
入れる場所はどこでもいいです。例えば Sub マクロ実行() Application.ScreenUpdating = False Call 摘要を削除 Call 摘要を削除する作業をすべてのシートで行う Call 集計シートを作る Call 集計 Call 集計シートをアクティブにする Call 戻るボタン設置 Call ボタン設置 Application.ScreenUpdating = true End Sub でも全くかまいません。 ただ、ScreenUpDatingのコマンドを実行すると、その時点の画面で 更新が止まります。更新が止まると、マクロが動いていることが全く わからなくなりますので、どこに入れるかはよく考えてください。 あと、バグを潰す前に入れてしまうと、バグがあって動作が変な場合に 画面の動きが全くフォローできなくなる・・・という点にも注意を。
補足
回答者様の教えてくださったように入れてみたのですが、 変化がなく、画面がチカチカと動きます。 何か原因として考えられることはありますでしょうか? 質問が重なってしまい、大変恐縮ですが、ご教授いただけたらと思います。
お礼
重ね重ねの質問にも関わらず、丁寧にご回答いただき、ありがとうございます。 ご回答者様に教えていただいたことを加味して、もう一度やってみようと思います。 本当にありがとうございました。