You want something that looks like a MsgBox--that's a UserForm
What I do for my projects is create a UserForm that has one label, say it's called UserForm_General. I give it a default caption (eg, "Working...") and a default label (eg, "...please wait"). Then, if I want to display it, and maybe modify the text it displays, I use the following code in the routine that is doing the work. So, say you're opening the workbook, you might put the following in your Private Sub Workbook_Open():
With UserForm_General
.Caption = "Initializing workbook..."
.Show vbModeless
.Repaint
End With
Then when you're done simply issue a:
UserForm_General.Hide
That's it...