Let's assume you are using AutoCAD2014 or later, 64-bit.
Firstly AutoCAD COM API does not expose AutoCAD built-in Progress Meter. Secondly, with 64-bit VBA, there is no Progress Bar component available as it is in 32-bit VBA. So, if you are developing somewhat advanced, missio-critical AutoCAD app, you might not want to waste time/effort with poorly supported 64-bit VBA; moving to AutoCAD .NET API development is the direction to go (or somehow moving to Autodesk's cloud services, if applicable).
With that said, if you only need a progress bar to enhance your existing VBA app a bit, then it is fairly easy to use VBA built-in control to create one. Following code use a label control and an image control to play as a progress bar with quite good visual effect (you can see the UserForm design from attached video clip):
Firstly, code module with a macro "Test" and a helper method:
Option Explicit
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Public Sub Test()
UserForm1.show
End Sub
Public Sub Pause(miliSec As Integer)
Sleep miliSec
End Sub
Then this is the code of UserFrom1:
Option Explicit
Private mStop As Boolean
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdStart_Click()
mStop = False
cmdStop.Enabled = True
cmdStart.Enabled = False
cmdClose.Enabled = False
ShowProgress 50
mStop = True
cmdClose.Enabled = True
cmdStop.Enabled = False
cmdStart.Enabled = True
End Sub
Private Sub cmdStop_Click()
mStop = True
End Sub
Private Sub ShowProgress(steps As Integer)
Dim width As Integer
width = imgProgress.width
lblProgress.Visible = True
imgProgress.Visible = True
Dim count As Integer
For count = 0 To steps
ShowLabelProgress count, steps
ShowImageProgress count, steps, width
Me.Repaint
'' Do each step of real work here
Pause 200
'' allow user to click "Stop"
DoEvents
If mStop Then Exit For
Next
lblProgress.Visible = False
imgProgress.width = width
imgProgress.Visible = False
End Sub
Private Sub ShowLabelProgress(current As Integer, total As Integer)
lblProgress.Caption = current & " of " & total
End Sub
Private Sub ShowImageProgress(current As Integer, total As Integer, totalWidth As Integer)
Dim w As Integer
w = Fix((current / total) * totalWidth)
imgProgress.width = w
End Sub
Private Sub UserForm_Initialize()
'' Initialize
mStop = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'' prevent user to accidentally close the UserForm while
'' the processing is in progress
If Not mStop Then
Cancel = 1
End If
End Sub
See this video: