下記の様なコードを入力しておいてフォームを閉じると、
UserForm_QueryClose Event
TextBox_Exit Event
UserForm_Terminte Event
の順にイベントが起こる事が分かります。したがって、UserFormQueryCloseEventの際にフラグを立てて、TextBox1_Exitの中で、上記フラグが立っていれば抜けるようにすればいかがでしょうか。
下記コードにはそれも盛り込んであります。
質問者様のコード全容は分かりませんので、外していたら済みません。
Dim closingFlag As Boolean
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "TextBoxExitEvent"
If closingFlag Then Exit Sub
If Len(TextBox1.Value) = 0 Then
MsgBox "データを入力してください"
Cancel = True
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Debug.Print "UserFormQueryCloseEvent"
closingFlag = True
End Sub
Private Sub UserForm_Terminate()
Debug.Print "UserFormTerminteEvent"
End Sub
お礼
簡素な質問から必要な文言を全部作っていただけて本当にありがとうございました。 今後一層のご活躍をお祈りいたしております。 それでは失礼致します。
補足
回答者様から頂いたものを実行ボタンを押す前に場所にそのままコピペするだけですんなり事は収まりましたが、まったく理解は出来ておりません;;;; 難しい事が書いてあるようにも見えませんしこれくらいは人に説明出来るくらいには勉強していこうと思います。 ありがとうございました。m(_ _)m