もくじ

taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、taka(@takabou63)です(^^♪
さて、ユーザーフォームでプログラムを組み始めて一度はやってみたいと思うのがこの【プログレスバー】での進捗状況を表示することだと思います(笑)
私もVBAを使いはじめたときはこのプログレスバーを使ってみたくて頑張ったことがありましたww
という訳で今回はVBAのユーザーフォーム上で進捗状況を表す事ができるコントロール【プログレスバー】についてご紹介します。
VBAのプログレスバーコントロールとは?
プログレスバーというのは【長時間かかる処理の進捗を可視化】するアニメーションの事を指します。プログレスメーターとも呼ばれますが、VBAではプログレスバーとして扱われています(^^♪
プログレスバーの導入方法
プログレスバーコントロールはデフォルトでは表示されていません。
まずユーザーフォーム画面から【ツールボックス】を表示させて、【ツールボックス】上なら、どこでもいいので右クリックを押してください。


このように【その他のコントロール】という表示が出てきたと思いますこれを選択すると追加できるコントロールが一覧で表示されます。


【MicrosoftProgressbarControl 】という表記にチェックを付けて「OK」をクリックしてください。
【その他コントロール】の設置については詳しくは下記の記事をご覧ください。
参考:【表示されていないユーザーフォームコントロールを表示する方法】
プログレスバーのプロパティ一覧
プログレスバーには様々なプロパティが用意されており細かく設定が可能になっています。よく使うであろうものをご紹介していきます。


プログレスバーのよく使うプロパティMax・Min
Max・Minはそれぞれ
- Max=最大値
- Min=最小値
を表しています、プログレスバーはこの設定のなかで数値を返します。初期値はそれぞれ
- 最小値=0
- 最大値=100
となっています。
プログレスバーの使い方
プログレスバーの使い方といいう事で実際に動かしていきましょう。プログレスバーは【valueプロパティ】でバーの進行を制御します。
下記のコードは最大値をあらかじめ設定しておいて変数iの数値を元にプログレスバーを動作させています
Private Sub CommandButton1_Click() Dim i As Long Dim cnt As Long cnt = 20000 ProgressBar1.Max = cnt '最大値を設定 For i = 0 To cnt DoEvents '処理の安定のためDoEvents関数を使用 Label1.Caption = i / cnt * 100 & "%処理完了" '処理のパーセンテージをラベルに表示 ProgressBar1.Value = i '変数iの値によってプログレスバーを動かす Next i MsgBox "終了しました" End Sub
なので途中にこのようなコードを入れるとバーが初めからやり直しになり永遠と動くこととなります(笑)
If i = 10000 Then i = 0 End If
※今回のサンプルコードは指定した回数でバーを動かしましたが、実際に使用する場合はその状況によって使用してください。
※プログレスバーは描写する分PCに負担がかかり処理が遅くなります。個人的にはユーザーの事を考えるとある程度速度を犠牲にしてでも終了の目安があった方がいいと思いますが。
ダウンロード
今回紹介したサンプルコードのファイルをUPしておきます。
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す