Brak możliwości zamknięcia UserForm przez X

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

1 myśl w temacie “Brak możliwości zamknięcia UserForm przez X

  1. Przebudowane rozwiązanie. UserForm_QueryClose współpracuje z UserForm_Terminate

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ' Wyłaczenie przycisku X w UserForm
    
    If CloseMode = vbFormControlMenu Then
        If MsgBox("Czy naprawde chcesz zamknac aplikacje?", vbYesNo + vbQuestion, "ZAMKNIECIE...") = vbYes Then
            Call UserForm_Terminate
        Else
            ' vbNO, nic sie nie dzieje
            Cancel = True
        End If
    End If
    End Sub
    

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.