<The end statement terminates the execution of e.g. a form.
Just to be clear, the End statement terminates the execution of an entire application/process/exe. So, if your application is interacting with another exe/process, that process will continue to run if you don't specifically stop it. End will not call Unload and QueryUnload events, and that's why the problem that David points out occurs.
<Unload.Me
Andy, as written, that will fail to compile. As you probably already know, proper syntax is "Unload Me" without the period. Unload predates the "dot notation" syntax, and as such is termed a "Statement" rather than a "Method" by the doc. Of course, if it were a method, it would be Me.Unload anyway, since dot notation is in the form Object.Method.
I generally use End in my code when I have a fatal error, and as the last statement in my Sub Main procedure. Matter of style, I guess.
Bob