• ベストアンサー

VBAでこれってどういう意味でしょうか?

いつもお世話になっております。 こちらで何度か質問した際に、VBAで下記のようなものが書かれておりました。 Application.ScreenUpdating = 更新するかしないかを調べるものらしいですが、最初に更新しているかしていないか確認する必要があるのでしょうか? なお、他にも時々見受けられる「Application」はどういう意味なのでしょうか? ご存知の方、教えていただければと思います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • t4t
  • ベストアンサー率55% (47/84)
回答No.1

>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の、画面更新するかどうかの情報」を指しています。

asahijp
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

#3です。 プロシージャ終了時に自動的にTrueになるようですが、↓の 大御所もおっしゃっているように、やはり「明示的に」True とした方がいいようです。 http://www.officetanaka.net/excel/vba/file/file05.htm >画面の更新を抑止するのは ScreenUpdating プロパティです。 >このプロパティもプロシージャが終了すると自動的に True がセットされるのですが、 >予期せぬトラブルを避けるためにも明示的に True を設定した方がいいでしょう。

すると、全ての回答が全文表示されます。
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

>Application.ScreenUpdating = ではなく、 Application.ScreenUpdating でしたら、画面の再描画を停止しているか否か が返って来ます。 ただ、以前は、 Application.ScreenUpdating = False としたら、 Application.ScreenUpdating = True としないかぎり プロシージャが終了しても MsgBox Application.ScreenUpdating としたら False が返ってきたと思いますが、 いまは、 プロシージャが終了したら意図的に記述しなく ても自動的に Application.ScreenUpdating = True となるようです。 いつから変わったかは分かりませんが。 ガセでしたらすみません。

asahijp
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

ANO1で正解です。 少しだけコメント。 この命令は画面の表示を止めますので注意が必要です VBAを途中終了とかApplication.ScreenUpdating = Trueを忘れるとExcel画面は止まったままになり入力等ができなくなりますよ。 充分なテストを行い漏れがないことを確認してね。

asahijp
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A