Use CRTL+BREAK to suspend execution at any point. You will be put into break mode and can press F5 to continue the execution or F8 to execute the code step-by-step in the visual debugger.
Of course this only works when there is no message box open, so if your VBA code constantly opens message boxes for some reason it will become a little tricky to press the keys at the right moment.
You can even edit most of the code while it is running.
Use Debug.Print to print out messages to the Immediate Window in the VBA editor, that’s way more convenient than MsgBox.
Use breakpoints or the Stop keyword to automatically halt execution in interesting areas.
You can use Debug.Assert to halt execution conditionally.