- ベストアンサー
Application.ScreenUpdatingがならなくなった
windowsXP SP2 Excel2000を使用しています。 Application.ScreenUpdating=false で画面非更新ができません。 sub Test() Application.ScreenUpdating=false msgbox Application.ScreenUpdating=false cells(1,1) = "test" Application.ScreenUpdating=True end sub とするとちゃんと、 メッセージではFalseが出るのですが、 cells(1,1) = "test" の時点で画面が更新されてしまいます。 使用法が誤っていますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どのような方法で非更新が出来ないことを確認していますか? その方法を提示していただければ納得いくと思います。
その他の回答 (2)
- tom11
- ベストアンサー率53% (134/251)
NO1の人の回答を、ちゃんと読みましょう。 たぶん、質問者が期待しているのは、 以下にする様にするだけ良いのでは Sub Test() Application.ScreenUpdating = False Cells(1, 1) = "test" Cells(1, 2) = "test2" MsgBox Application.ScreenUpdating Application.ScreenUpdating = True End Sub プログラムは、順番に動きます。
- pbforce
- ベストアンサー率22% (379/1719)
> Application.ScreenUpdating=True があればすぐ更新されます。 なくてもこのプログラムが終了すれば更新されます。
お礼
参考に書いたプログラムが間違っていました。 申しわけありません。 正しくは Sub Test() Application.ScreenUpdating = False MsgBox Application.ScreenUpdating Cells(1, 1) = "test" Cells(1, 2) = "test2" Application.ScreenUpdating = true End Sub です。 >> Application.ScreenUpdating=True >があればすぐ更新されます。 そこで更新されればいいのですが、私のEXCELでは Cells(1, 1) = "test" を通過した時点ですでに更新されている、 ということです。 以前は正常に更新非更新ができていたのですが、いつの間にかならなくなっていました、、、。
お礼
回答ありがとうございます。 問題はデバッグで1行ずつ動かして確認していたことにありました。 Sub Test() Dim i As Integer Application.ScreenUpdating = False For i = 1 To 20000 Cells(i, 1) = i Next Application.ScreenUpdating = True End Sub として一気に実行したところ、正常に更新非更新になっていることが確認できました。 実は、現在作成中のプログラムでうまく非更新できず、上記サンプルプログラムでの確認でも非更新ができなかったため質問を投稿しました。 更新の使い方は問題ないことがわかったので、もう一度プログラムを読み直して、非更新がならない原因を見つけたいと思います。 質問の問題は解決したため、質問を締め切らせていただきます。 ありがとうございました。