長時間かかる処理を待つ際には、進捗状況が見えたほうがイライラしませんよね。 EXCELには進捗状況を表示するためのコントロールが事前に用意されています。しかし、色々覚えることが多く手軽に利用することができません。そこで、もう少し簡単にプログレスバーを表示する方法を紹介します。
Application.StatusBarで解決する
進捗状況をステータスバーに表示します。表示できるのは文字列のみですが、「20%完了」「32/256 完了」「■■■■■□□□□□ 22/50 進捗状況(44%)」のように表示を工夫することで進捗状況を表示することができます。今回は、以下のようなプログレスバーの表示方法を紹介します。
サンプルプログラムを確認する(コピペOK )
'* @param[in] val 進捗バーの現在値
'* @param[in] max 進捗バーの最大値
Sub showProgressBar(val As Long, max As Long)
Dim s As String: s = ""
Dim i As Long
For i = 0 To 9
s = s & IIf(i < Int(val * 10 / max), "■", "□")
Next
s = s & " " & val & " / " & max & " 進捗状況(" & Int(val * 100 / max) & "%)"
Application.StatusBar = s
End Sub
Sub sample()
Dim i As Long
For i = 0 To 50
Application.Wait [Now()] + 200 / 86400000 '200msのWait
Call showProgressBar(i, 50)
Next
Application.StatusBar = "" '最後に空にする
End Sub
コメント
[…] 【EXCEL VBA】プログレスバーで進捗状況を表示したい長時間かかる処理を待つ際には、進捗状況が見えたほうがイライラしませんよね。 EXCELには進捗状況を表示するためのコントロールが […]