I was under the illusion that if there was a message box open that no program code was executing because the program was waiting for an response from the user.
I was under the same wrong impression about when a modal form was open and the user hadn't performed any actions on it.

However I am now aware that timer events (probably only on other open forms though?) can also fire and other code can execute. Makes sense but I didn't think that this was the case.
I am still a bit unclear on things though.

Say I click on a button and the click event's code fires and in the middle of its code are calls to other subs and functions and maybe objects.
Also say that in none of the code that is called is there a DoEvents or a message box.
Then I am guessing that no timer can fire until all that code has executed.
Is that correct or wrong?
Is there anything else that can cause a pause and allow other code to execute?