Hi Andrew,
Take a look at this, which goes into your ThisWorkbook module ...
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Did you put your shoe's on today?", vbYesNo) = vbYes Then
If MsgBox("Did you put your pants on?", vbYesNo) = vbYes Then
If MsgBox("Did you put your shirt on?", vbYesNo) = vbYes Then
If MsgBox("And your cap?", vbYesNo) = vbYes Then GoTo closeMe
End If
End If
End If
Cancel = True
Exit Sub
closeMe:
Call deleteAllMacros
Application.EnableEvents = False
ThisWorkbook.Close True
End Sub
Private Sub Workbook_Open()
Application.EnableEvents = True
End Sub
As for your 'Escape' button, I'd highly suggest that you add it to the beginning of your macro to delete all macros. One large caveat about this, the EnableEvents = False is there so the close macro will not fire twice (which it will if you take it out). Hence the addition of the turning it back on in the open macro. Problem?: If you use other workbooks in the meantime (and using Xl XP or up) your EnableEvents will remain false until you set it back. See, no more macros will fire after the ThisWorkbook.Close True, because we just closed the book, and there's nothing to run that is open!
Anyway, HTH.