プロが教えるわが家の防犯対策術!

いつもお世話になっております。
こちらで何度か質問した際に、VBAで下記のようなものが書かれておりました。

Application.ScreenUpdating =

更新するかしないかを調べるものらしいですが、最初に更新しているかしていないか確認する必要があるのでしょうか?
なお、他にも時々見受けられる「Application」はどういう意味なのでしょうか?
ご存知の方、教えていただければと思います。
よろしくお願いいたします。

A 回答 (4件)

>Application.ScreenUpdating =


調べるのではなく、設定しているのです。
Application.ScreenUpdating = False
とすると、VBAからExcelのセルの中を変更しても、画面は変わらなくなります。
Application.ScreenUpdating = True
とすると、VBAから変更したセルの内容が画面に表示されます。

なんでこんな処理があるかというと、
VBAからExcelのセルを変更するとき、変更の途中の状態が画面に表示されると、速度も遅くなりますし、画面も一時的にちらちらしたりして見にくくなります。

そのため、

Application.ScreenUpdating = False

…セルの内容を変更するなどの処理…

Application.ScreenUpdating = True

とやって、処理をする間、画面の表示を変えないようにしています。

>Applicationはどういう意味なのでしょうか
VBAでApplicationというのは、ExcelとかWordとか、VBAが動くOfficeアプリ自身のことです。

Application.ScreenUpdating は、たとえばExcelのVBAなら、「Excelの、画面更新するかどうかの情報」を指しています。
    • good
    • 3
この回答へのお礼

返答ありがとうございます。
非常に解りやすく疑問に思っていたことが解決しました。
今後も何か分からないことがあって質問することもあるかもしれませんがどうぞよろしくお願いいたします。

お礼日時:2008/06/14 09:37

#3です。



プロシージャ終了時に自動的にTrueになるようですが、↓の
大御所もおっしゃっているように、やはり「明示的に」True
とした方がいいようです。

http://www.officetanaka.net/excel/vba/file/file0 …

>画面の更新を抑止するのは ScreenUpdating プロパティです。
>このプロパティもプロシージャが終了すると自動的に True がセットされるのですが、
>予期せぬトラブルを避けるためにも明示的に True を設定した方がいいでしょう。
    • good
    • 0

>Application.ScreenUpdating =


ではなく、
Application.ScreenUpdating
でしたら、画面の再描画を停止しているか否か
が返って来ます。

ただ、以前は、
Application.ScreenUpdating = False
としたら、
Application.ScreenUpdating = True
としないかぎり
プロシージャが終了しても
MsgBox Application.ScreenUpdating
としたら
False
が返ってきたと思いますが、
いまは、
プロシージャが終了したら意図的に記述しなく
ても自動的に
Application.ScreenUpdating = True
となるようです。

いつから変わったかは分かりませんが。
ガセでしたらすみません。
    • good
    • 0
この回答へのお礼

返答ありがとうございます。
皆さんのおかげで色々勉強になります。
今後も何か分からないことがあって質問することもあるかもしれませんがどうぞよろしくお願いいたします。

お礼日時:2008/06/14 09:38

ANO1で正解です。



少しだけコメント。

この命令は画面の表示を止めますので注意が必要です
VBAを途中終了とかApplication.ScreenUpdating = Trueを忘れるとExcel画面は止まったままになり入力等ができなくなりますよ。
充分なテストを行い漏れがないことを確認してね。
    • good
    • 0
この回答へのお礼

返答ありがとうございます。
皆さんのおかげで色々勉強になります。
今後も何か分からないことがあって質問することもあるかもしれませんがどうぞよろしくお願いいたします。

お礼日時:2008/06/14 09:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています