Me parece magnífica la solución de la macro para cerrar la hoja, sin embargo, si quieres que no se cierre con el aspa tendrías que hacer otra para evitarlo.
El procedimiento puede ser algo más engorroso.
Crea un módulo y declara una variable (que será global) Cerrar as boolean
En el evento Close de la hoja de cálculo puedes utilizar el parámetro Cancel para evitar que se cierre (Cancel=True)
Vale pues ya puedes jugar con la variable declarada para decidir cuándo quieres cerrar realmente, es decir, cuando le des al boton, antes de poner el código que nos ha enseñado el amigo Marcos, establece la variable a True (Cerrar= true) y en el evento Close puedes poner lo siguiente:
If Cerrar then
cancel=false
else
cancel=true
endif
De esa manera evitas que la hoja se cierre salvo cuando tú realmente quieras