What you will need is a UserForm which triggers from the Workbook_Open event. The UserForm will need a label of desired width of the progress bar (say 400), give it a BackColor such as yellow. Perhaps placing the label within a Frame of the same width.
Then you need a bit of looping code on the UserForm_Activate event that will take the desired time to run...something like:
Code:Dim a As Long, b As Long, c As Long Label1.Width = 0 For a = 1 To 10000 Label1.Width = (a / 10000) * 400 DoEvents For b = 1 To 10000 c = a * b Next b Next c UserForm1.Hide
Obviously adjust the limit values to suit the desired run time.
Not that I've done this sort of thing before of course
I'm making progress now. How do I trigger the UserForm from the Sub Workbook_Open()?