エクセルVBA

エクセルマクロVBA:アプリケーション

エクセルのちょっとしたテクニックを紹介します。

処理が実行中なら「実行中・・・」と表示するようにするには、どうしますか?画面のちらつきを抑えるコードを書いている場合、ちょっと長い処理をさせると、処理中なのか、そうでないのかわからなくなるときがありませんか?マクロの処理中に文字列を表示させることが出来ます。

表示する場合のコードは、
Application.StatusBar = "実行中・・・"

表示を解除する場合のコードは、
Application.StatusBar = False


これで実行中ならステータスバーに文字が表示されるのでわかりますね。あと、ステータスバーに文字を表示させるコードを書いたら、必ず解除するコードも書いてくださいね。書かないと処理が終わっても、ステータスバーの文字がそのままになってしまいます。


これを応用して処理の進み具合を把握することが出来ます。そうです。ループ構文に組み込んで使用します。


以下のサンプルコードを試してみてくださいね。

'***************************************
'ステータスバーに進捗状況を表示する
'***************************************
Sub Test13()
  Dim Rw As Long
  Dim Lastrow As Long

  For Rw = 1 To 5000
    Cells(Rw, 1).Value = Rw
    Application.StatusBar = Rw & "件書込み中・・・"
  Next Rw
  Application.StatusBar = False
  MsgBox "書き込み終了、今度は消去します。"
  Lastrow = Cells(Rows.Count, 1).End(xlUp).Row
  For Rw = 1 To Lastrow
    Cells(Rw, 1).Value = ""
    Application.StatusBar = Rw & "件消去中・・・"
  Next Rw
  Application.StatusBar = False
  MsgBox "終了しました"

End Sub

エクセルのちょっとしたテクニックを紹介します。

エクセルマクロを記録して実行すると、同じシート内での処理でも画面がちらついたりしますよね。短い処理なら気にならないかもしれませんが、長い処理になると、気になってしまうのは私だけでしょうか?

画面のちらつきを抑えるコードを紹介します。

Application.ScreenUpdating = False

コードのはじめに書いておいてください。画面の更新をコード終了まで止めるので、画面がちらつかないようになります。また、処理速度を上げる効果もあるので、長い処理のときには、特に効果的です。


エクセル
〜ちょっとしたテクニック〜
Add to Google My Yahoo!に追加 ブックマークに追加する
Author

エステリア

エクセルの基本から小技までちょっとしたテクニックを随時提供中

ご案内
●役に立ったと思った方は●

人気blogランキング

1日1回のクリックでこのブログが育ちます。応援よろしくお願いします。
----------------------------------------------
●運営ポリシー●

エクセルのいろんな機能を随時紹介していきます。
トラバ、コメント大歓迎です。内容を確認の上、掲載します。アダルトサイトからのトラバ、コメントはご遠慮下さい。
楽天市場