Hola, te comento por si quieres tenerlo en cuenta, que según creo, aunque puedo equivocarme, terminar la ejecución de un programa con END, efectivamente se consigue pero no es lo que se considere la forma mas elegante, te dejo la información que aparece en la MSDN
Cita: Comentarios
Cuando se ejecuta la instrucción End, se restablecen todas las variables anivel de módulo y todas las variables locales estáticas en todos los módulos. Utilice Stop si necesita conservar el valor de estas variables. Puede reanudar la ejecución y al mismo tiempo conservar los valores de esas variables.
Nota La instrucción End detiene la ejecución bruscamente, sin llama a los eventos Unload, QueryUnload o Terminate, o cualquier otro código Visual Basic. El código que ha colocado en los eventos Unload, QueryUnload y Terminate de los formularios y módulos de clase no se ejecuta. Se destruyen los objetos creados desde módulo de clase, se cierran los archivos abiertos utilizando el método Open y se libera la memoria utilizada por el programa. Se invalidan las referencias de objetos mantenidas por otros programas.
La instrucción End proporciona una manera de forzar la detención de un programa. Para la finalización normal de un programa Visual Basic, debe descargar todos los formularios. El programa se cierra en cuanto no haya otros programas que mantienen referencias a objetos creados en los módulos de clase públicos y se ejecute ningún código.
Personalmente, lo que hago es DESCARGAR todos los formularios, lo que me garantiza el cierre previsto en los mismos:
Código vb:
Ver original' Descarga TODOS los formularios abiertos
Dim Formulario As Form
For Each Formulario In Forms
Unload Formulario
Next
Pero ya se sabe, para gustos colores.
Saludos