目录
VBA的ProgressBar控件可以显示程序执行的进度,让你的程序更具交互性,该控件依赖于 MSComctlLib 运行库,在使用该控件之前,需要在VBA编辑器中引用该库。
一、使用方法
第一步:引用MSComctlLib运行库。
引用步骤如下:
- 打开VBA编辑器(按Alt + F11)。
- 在菜单栏中选择“工具”->“引用”。
- 在引用列表中找到并勾选“Microsoft Forms 2.0 Object Library”(或相应的版本),即MSComctlLib的运行库。如下图:
第二步:添加ProgressBar控件。
1. 插入用户窗体
依次点击“插入”—“用户窗体”。
2. 选中窗体
双击窗体“UserForm1”,然后选中右边预览窗口的窗体。
3. 打开工具箱
依次点击“视图”—“工具箱”。
4. 添加附加控件
依次点击“工具”—“附件控件”—选中“Microsoft ProgressBar Control 6.0(SP6)”—“确定”。
5. 插入控件
在工具箱中选择相应的控件,然后在窗体口中插入控件,窗体和控件的大小和位置可以调节。
第三步:调用控件
在“视图”—“属性”窗口中可修改相应控件的参数,包括大小、位置、颜色、字体等,注意:当你选中的是控件,属性窗口显示的是控件属性;当你选中的是窗口,属性窗口显示的就是窗口属性。ProgressBar控件的进度值默认是从0至100,可以在控件属性中根据需要进行修改。 在VBA中通过给ProgressBar控件赋值,就可以控制进度条显示的进度,代码如下:
UserForm1.ProgressBar1.Value = BarValue
说明:BarValue的取值从0至100。
二、使用演示
使用过程中先显示窗体,然后设置ProgressBar控件的值,最后关闭窗体,演示代码如下:
Sub Demo_UserForm1()
'
' 进度条演示,默认总步数是100
'
Application.ScreenUpdating = False ' 禁用屏幕更新
UserForm1.Show 0 '打开窗体(不暂停)
Dim i As Long, BarValue As Long
For i = 1 To 5
' 这里可以执行你的代码...
Application.Wait (Now + TimeValue("0:00:01")) ' 延时1秒
BarValue = BarValue + 20
UserForm1.ProgressBar1.Value = BarValue ' 更新进度条
Next i
Application.ScreenUpdating = True ' 启用屏幕更新
MsgBox "执行完毕!", vbInformation, "提示"
Unload UserForm1 '关闭窗体
End Sub
下一章, 我将向大家介绍《VBA进度条ProgressForm1》的使用方法,ProgressForm1是集成ProgressBar控件和Label控件的窗体,可以同时显示进度条和百分比。