top of page

​タグ一覧

VBAの進行状況(プログレスバー)をステータスバーに表示する

2024年1月14日
読了時間: 2分

更新日:7月17日


VBAの進行状況(プログレスバー)をステータスバーに表示する

<概要(ステータスバー,プログレスバー,進行状況,VBA)>


今回は、進行状況をステータスバーに表示するVBA用汎用プロシージャを紹介します。


作成したプログラムの進行状況をユーザーに知らせるための処理は、時間を要する処理において実装するのはマナーのようなものです。


進行状況、いわゆるプログレスバーは開発者によっていろいろ個性がでるので面白いところですが、私の場合はステータスバーを利用して最小限の情報とコードで実装しています。


<用途>


・時間を要する処理の進行状況をお知らせする。



<プロシージャ紹介>


Public Sub ShowStatusBarProgress(Value As Long, MaxValue As Long, [Divide As Long = 1], [Message As String = ""])


名前:ShowStatusBarProgress/Subプロシージャ

説明:進行状況をステータスバーに表示する



引数

Value ・・・現在個数

MaxValue ・・・全体個数

[Divide] ・・・分割幅(Valueが何回に1回のときにスターテスバーを更新するか)/省略なら1で毎回更新

[Message]・・・表示メッセージ



<実行例>


次のようなコードを記述します。




実行すると左下のステータスバーには次のような表示がされます。


実行結果でのステータスバーの表示
実行結果でのステータスバーの表示

この汎用プロシージャを使用する上での注意点ですが、ループ数が多いときは分割数「Divide」をしっかり指定することです。


「スターテスバーに文字列を表示する」処理自体に処理時間を要するため、デフォルト値で「Divide=1」とするとループ毎にスターテスバーが更新されて余計に処理に時間がかかってしまいます。


ちなみに、今回のように進行状況をお知らせせずに実行するのが一番処理時間が短くてすみます。その代わり「どのくらい進んでいるか」が分からなくなります。それぞれ長所短所ですね。


<コード>

 

 Gist






Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page