もくじ

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です。この本ブログで人気記事である【コントロール【プログレスバー】】、ループ処理などの時に進捗を表示するのに適しているこのコントロールですが、プログレスバーを使わないでも作れることをご存知でしょうか?!(^^)!
プログレスバーコントロールが用意されているにもかかわらず、あえて使わないという(笑)
正直意味があるのかわかりませんがまぁ知識として知っていただければと思います ^^) _旦~~
プログレスバーをLabelで作成する方法
作成イメージとしては下記のような形になります。Labelで作成しているので色などを自由に変更できるところがポイントです(^^♪
プログレスバーコントロールでは色の変更はできないはずなので…
用意するコントロール
用意するコントロールは以下の通りです。
- Labelコントロール・・・最低2つ
- コマンドボタン
です。Labelの最低二つというのは、バーで二つ使用するのと進捗を表示する場合はもう一つ必要になるからです(;^ω^)
Label版プログレスバーの作り方
Label版プログレスバーの作り方は簡単です(^^♪
Label1でバーの枠を作り、Label2でバーの動く部分を作ってあげればいいのです ^^) _旦~~
いたって簡単ですよね(笑)
Labelコントロールを二つ重ねてLabel1(枠)の上でLabel2(バーの部分)の長さを動かしてあげればいいだけなのです(笑)
まぁ言葉より実際に作ったほうが早そうですね(;^ω^)
実際に作ってみましょう(^^♪
Label版プログレスバーのコード
Label版プログレスバーのコードは以下の通りです、簡単な解説はコメントアウトしてありますのでご覧ください( ^ω^ )
下記にてダウンロードファイルも用意いたしますので参考にしてみてください(^^♪
Private Sub UserForm_Initialize() With Label1 'Label1はバーの枠の部分---------------------- .BorderStyle = fmBorderStyleSingle 'バーの枠を設定 .Width = 300 'バーの長さを設定 .Height = 30 'バー(枠)の高さを設定 .Top = 60 'バー(枠)の位置を設定 .Left = 30 'バー(枠)の位置を設定 End With With Label2 'Label2はバーの動く部分 (本体)------------- .Width = 0 'バー(本体)の長さを0に .Height = 30 'バー(本体)の高さを設定 .Top = 60 'バー(本体)の位置を設定(枠)と同じ位置にする。 .Left = 30 'バー(本体)の位置を設定(枠)と同じ位置にする。 .BackColor = &H8000000D 'バーの色を設定 End With End Sub Private Sub CommandButton1_Click() Dim i As Long Dim cnt As Long Max = Label1.Width 'プログレスバーコントロールでいうMaxをバー(枠)のWidthの値に設定 cnt = 20000 '処理の内容 For i = 0 To cnt DoEvents '処理の安定のためDoEvents関数を使用 Label2.Width = i / cnt * Max 'バーを動かす Label3.Caption = i / cnt * 100 & "%処理完了" '処理のパーセンテージをラベルに表示 Next i MsgBox "終了しました" End Sub
ダウンロード
当サイトの免責事項をお読みになってからお使いください。

Labelプログレスバー
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す