20140701_noexit

Het is perfect mogelijk om de werking van ‘het kruisje’ om Excel af te sluiten te beïnvloeden met VBA.

Plaats volgende code in ‘ThisWorkbook’ via de VBA editor.

Public Sub Workbook_BeforeClose(Cancel As Boolean)

   MsgBox "Afsluiten gaat niet met het kruisje" & _
    vbNewLine & "Neem eens een kijkje op http://www.exhelp.be"
   Cancel = True

End Sub

Als je nu op het kruisje drukt, krijg je deze melding:

20140108_msgbox_close

Tenzij je de macro gebouwd hebt om je collega beet te nemen, zorg je best ook voor een manier waarop men het bestand wél correct kan afsluiten. Dat kan bijvoorbeeld als volgt.

Maak via de VBA editor een nieuwe module, en plaats hierin deze code:

Public b_close As Integer

Public Sub s_close()
b_close = 1
Application.Quit
End Sub

Klik in het link op ‘Ontwikkelaars’, en kies bij ‘Invoegen’ voor een knop (bij de Formulierbesturingselementen).

20140108_commandbutton

Plaats de knop in je blad, en koppel deze aan de net gemaakte macro.

20140108_macro

Pas de code in ‘ThisWorkbook’ aan als volgt:

Public Sub Workbook_BeforeClose(Cancel As Boolean)

If Not b_close = 1 Then

   MsgBox "Afsluiten gaat niet met het kruisje" & _
    vbNewLine & "Neem eens een kijkje op http://www.exhelp.be"
   Cancel = True

End If

b_close = 0

End Sub

Je kan nu Excel sluiten met een druk op de knop.

20140108_knop