If you are writing a macro that will run for some time or that might get stuck somewhere put this line in it: DoEvents This call will let the OS catch up and do anything it needs to do like trap clicking on the macro stop button. Handy when debugging for the same reason.