top of page

​タグ一覧

配列処理(76)

シート・セル操作(37)

ファイル操作(33)

階層化フォーム(33)

開発事例(31)

図形操作(29)

設計思想(15)

ユーザーフォーム(12)

シフト表(12)

講座実施報告(12)

数学(11)

イベントプロシージャ(10)

開発効率化(10)

コード自動生成(10)

GAS(10)

技術解説(9)

ココナラ(9)

文字列操作(8)

Webアプリ(8)

Googleスプレッドシート(6)

その他(5)

アニメーション(5)

副業(5)

介護・福祉(5)

OneDrive(4)

条件付き書式(4)

イミディエイトウィンドウ(4)

クリップボード(4)

小説(3)

日報(3)

JavaScript(3)

PDF(3)

HTML(3)

公開ツール(3)

クラスモジュール(2)

コード解説(2)

パズル(2)

小ネタ(2)

フリーランス(2)

Antigravity(2)

カレンダー(2)

Enum(2)

医療(2)

LookerStudio(2)

リスキリング(2)

Discord(2)

Outlook(2)

デスクトップアプリ(2)

スクレイピング(1)

WebAPI(1)

PowerShell(1)

文書作成(1)

スプレッドシート(1)

経理(1)

超勉強会(1)

溶接ロボット(1)

楽天市場(1)

VBA不使用(1)

実行予約(1)

CAD(1)

給与計算(1)

QRコード(1)

python(1)

学校(1)

発注書(1)

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はそのままで、面倒な部分だけを自動化できます。ご相談は無料です。

softex-celwareロゴ 透過 横長.png

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

  • Facebook
  • Twitter
  • YouTube

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

bottom of page