yo lo haría de una manera muy simple, crearía una variable de bandera, para saber si el usuario esta cerrando la aplicación desde algún lugar del sistema, algo así:
Dim flagcierre As Boolean
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If flagcierre = False Then
Cancel = 1
End If
End Sub
Private Sub miboton_Click()
flagcierre = True
End
End Sub