Create a user form with a label box that is almost the entire width of the userform, make it's background colour something that stands out. Take note of it's width in properties.
In your code set the width of the label box to 1 and show the userform with the vbmodeless switch so your code doesn't pause.
If you have a loop in your macro you can use the following to cause the progress bar to smoothly extend across the userform:
where 500 is the max width of the labelbox.
Without a loop you can still make the bar move:
Bookmarks