今回はプログレスバーのサンプルを紹介します。
目次
作り方
まずはExcelでVisual Basicを開いてユーザフォームを作成します。
![](https://hoimins.com/wp-content/uploads/2019/11/vba_progress1-263x300.png)
プログレスバーのコントロールを利用するためにツールボックスを右クリックし「その他のコントロール」を選択します。
![](https://hoimins.com/wp-content/uploads/2019/11/vba_progress2.png)
「Microsoft ProgressBar Control, version xx」を選んでOKを選択します。
![](https://hoimins.com/wp-content/uploads/2019/11/vba_progress3.png)
プログレスバーのコントロールが利用できるようになります。
![](https://hoimins.com/wp-content/uploads/2019/11/vba_progress4.png)
ちょっとそれらしく作ってみました。
![](https://hoimins.com/wp-content/uploads/2019/11/vba_progress5.png)
サンプル
以下はプログレスバーを表示するサンプルです。
20%毎に進捗を更新します。
Sub test()
'プログレスバー最小値
UserForm1.ProgressBar1.Min = 0
'プログレスバー最大値
UserForm1.ProgressBar1.Max = 100
'プログレスバー初期値
UserForm1.ProgressBar1.Value = 0
'ユーザーフォームをモードレスで開く
UserForm1.Show vbModeless
'OSへ制御を移す(これをしないとラベルが表示されない)
DoEvents
'画面更新 無効
Application.ScreenUpdating = False
'処理1
Call SetValuesAndProgressBar(20)
'処理2
Call SetValuesAndProgressBar(40)
'処理3
Call SetValuesAndProgressBar(60)
'処理4
Call SetValuesAndProgressBar(80)
'処理5
Call SetValuesAndProgressBar(100)
'ユーザーフォームを閉じる
Unload UserForm1
'画面更新 有効
Application.ScreenUpdating = True
End Sub
Sub SetValuesAndProgressBar(val As Integer)
Dim i As Integer
For i = 1 To 5000
Cells(1, 1).Value = i
Next
UserForm1.ProgressBar1.Value = val
End Sub
![](https://hoimins.com/wp-content/uploads/2019/11/vba_progress6-1024x702.png)
コメントを残す