マクロの処理で時間がかかる時に、実行中を示す
ステータスバーを表示する方法です。
Application.StatusBar = "処理中…" ' 処理を実行 Application.StatusBar = False
Application.StatusBar = False を指定するまでステータスバーが表示されます。
全体のうちどこまで進んだのかを表示したいときは以下です。
Dim max As Long max = 2000 Dim rowIdx As Long For rowIdx = 1 To max DoEvents Application.StatusBar = " 処理を実行中…(" & rowIdx & "/" & max & ")" & _ String(Int(rowIdx / max * 10), "■") ' 処理を実行 Next Application.StatusBar = False
上記のサンプルでDoEvents をしているのは
処理が重い場合に、ステータスバーの表示が固まってしまうことがあるからです。
比較的処理が軽い場合は、DoEvents なしでもOKです。