如何访问Office应用程序状态栏中的进度栏

我为Word和Excel构buildVBA应用程序,有没有办法访问有时出现在Office状态栏中的进度条。

以下将模拟Excel状态栏中的进度条:

Public Sub UpdateStatusBar(percent As Double, Optional Message As String = "") Const maxBars As Long = 20 Const before As String = "[" Const after As String = "]" Dim bar As String Dim notBar As String Dim numBars As Long bar = Chr(31) notBar = Chr(151) numBars = percent * maxBars Application.StatusBar = _ before & Application.Rept(bar, numBars) & Application.Rept(notBar, maxBars - numBars) & after & " " & _ Message & " (" & PercentageToString(percent) & "%)" DoEvents End Sub 

除此之外,我还会build议您loggingStatusBar的当前状态,然后在完成所有工作时将其恢复。

 Dim OldStatus With Application OldStatus = .DisplayStatusBar .DisplayStatusBar = True .StatusBar = "Doing my duty, please wait..." End With ' Do what you do best here (you can refresh the .StatusBar message with updted, as needed) With Application .StatusBar = False .DisplayStatusBar = OldStatus End With 

我还没有访问进度条,但我在过去使用类似的东西,把任务状态文本在状态栏…

 Sub StatusBarExample() Application.ScreenUpdating = False ' turns off screen updating Application.DisplayStatusBar = True ' makes sure that the statusbar is visible Application.StatusBar = "Please wait while performing task 1..." ' add some code for task 1 that replaces the next sentence Application.Wait Now + TimeValue("00:00:02") Application.StatusBar = "Please wait while performing task 2..." ' add some code for task 2 that replaces the next sentence Application.Wait Now + TimeValue("00:00:02") Application.StatusBar = False ' gives control of the statusbar back to the programme End Sub 

AFAIK,没有办法重现由Word和Excel使用的蓝线,以显示100%的进度,例如打开文件时。

我记得有一次在状态栏中看到一些代码复制它,但它很复杂,我不会推荐它,当它是足够的,而不是在状态栏中使用Application.StatusBar说“X%complete”。