2016-08-02 12 views
1

Ich möchte programmgesteuert entscheiden, ob der Benutzer auf die Schaltfläche "X" oben rechts geklickt hat, während ein Formular in Visual Basic verwendet.Ermitteln, wann der Benutzer auf x - VBA klickt

ich versucht habe:

Private Sub nameOfForm_Exit() 
    'code goes here 
End Sub 

Welche unterlegen ist. Jede Hilfe würde sehr geschätzt werden.

+0

QueryClose Event: https://msdn.microsoft.com/en-us/library/office/gg278635.aspx (sagt Ihnen sogar, wenn der Benutzer X gedrückt hat oder wenn das Formular programmgesteuert oder ... usw. geschlossen wurde und ermöglicht es Ihnen, das Schließen des Formulars zu verhindern, wenn Sie dies wünschen) – Mikegrann

Antwort

5
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
    MsgBox "Good bye" 

    '/ To prevent user from closing the form 
    '/ Set cancel to True 

    Cancel = True 

    MsgBox "You can't close me!" 
End Sub 
3

enter image description here Sie können nicht Ihre eigenen Begriffe wie "Exit" erfinden. Sie müssen sie in den obigen Kombinationsfeldern (bekannt als Ereignisse) nehmen. Da sich Ihr Ereignis auf das Benutzerformular selbst bezieht, müssen Sie im linken Kombinationsfeld Benutzerformular auswählen. Sie sehen auch alle Steuerelemente, die Ihr Benutzerformular hat, sie haben jeweils einen Satz von Ereignissen.

Wie bereits erwähnt, bezieht sich QueryClose auf das rote X in der oberen rechten Ecke. Sie haben auch deaktivieren, was geschieht, wenn das UserForm den Fokus verliert (wenn es ModeLess ist, was bedeutet, dass ein Benutzer auf das Blatt hinter dem Benutzerformular klicken kann, ohne es zu schließen, wird dies deaktivieren) und Beenden, das nach dem Schließen des Benutzerformulars mit QueryClose auftritt .

Verwandte Themen