Wielokrotnie pisałem aplikacje, gdzie musiałem wyłączyć przycisk zamknięcia „X” w User Form w VBA. Kod do tego typu wyłączenia zapożyczyłem od Johna Walkenbach.
Gdy użytkownik naciśnie przycisk „X” w User Form, jego oczom pojawi się MsgBox. Składania MsgBox jest następująca:
MsgBox "Aby zamknac okno, kliknij przycisk START lub ZAMKNIJ.", vbInformation, "ERRROR..."
Proszę zauważcie, że MsgBox mówi o dwóch dodatkowych przyciskach czyli START i ZAMKNIJ. Te przyciski muszą zostać dodane do UserForm wraz z kodem do zamknięcia UserForm np. Unload Me.
Poniższy kod umieszczamy w obszarze kodu UserForm, w którym chcemy zablokować możliwość zamknięcia UserForm przez przycisk X z prawego górnego rogu:
Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then MsgBox : vbInformation i tilte">MsgBox "Aby zamknac okno, kliknij przycisk START lub ZAMKNIJ.", vbInformation, "ERRROR... Cancel = True End If End Sub
Przebudowane rozwiązanie. UserForm_QueryClose współpracuje z UserForm_Terminate