I would suggest to use native SolidWorks progress bar: 2013 SOLIDWORKS API Help - IUserProgressBar Interface
The VBA macro doesn't work well with multi-threading so you have to call DoEvents function to allow your main form to redraw because the thread will be busy.
I have used it and have run through the sample. I would like it to either be on the Active macro userform or even better a second userform "popup" within the macro. Have you seen anything like this? is it possible to use the SWProgressBar Control? I have never gotten the SWProgressBar Control to work properly (older OCX) so i have skipped it.
If this is a program of significance in your company, I would recommend converting your macro into an addin so that you can use BackgroundWorker class. There are so many benefits of .NET over VBA. The latter is great for learning or whipping up something fast, but in a professional setting they are outclassed by addins in nearly every way.
But if you're sticking with VBA macros, IUserProgressBar is definitely the simplest route. This is the native SolidWorks progress bar, therefore you cannot use it in a user form (to answer your question to Artem).