Вы можете использовать StrPtr()
, чтобы определить, была ли нажата кнопка отмены;
Dim fsUserName As String
fsUserName = InputBox("Please Enter your name.", "User Name", "dc")
If (StrPtr(fsUserName) = 0&) Then
MsgBox "Cancelled or X clicked"
ElseIf fsUserName = "" Then
MsgBox "No name Entered." & vbCr & "You must enter a name.", vbExclamation, "ERROR"
Else
fsUserName = UCase$(fsUserName)
MsgBox fsUserName
End If
Если вы хотите что-то сделать, когда форма выгружается, вы можете использовать событие Form_Unload
или, что лучше, событие Form_QueryUnload
, которое срабатывает до фактической выгрузки и позволяет отменить его.
Он также расскажет вам, почему форма выгружается (UnloadMode
будет 0, если нажать красный X)
Использование «Unload Me
» вызовет оба события.
Редактировать: Вызов Form_Load
в Form_Load
подобным образом в конечном итоге заполнит стек, лучше использовать цикл для поиска отсутствующего имени пользователя.