ユーザーフォームにテキストボックスがあります。ユーザーがこのテキストボックスに何も入力できなかった場合は、それをトラップして入力を強制する必要があります。これは簡単に行うことができますが、入力が必要であることをユーザーに通知した後、フォーカスをテキストボックスに戻す必要があります。今のところ、それはしません。これが私のコードです:
Private Sub txtAnswer_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 13:
If Me.txtAnswer.Value = "" Then
temp = MsgBox("You need to enter an answer!", vbCritical + vbOKOnly, "No Answer Found!")
Me.txtAnswer.SetFocus
Else
recordAnswer
End If
End Select
End Sub
このコードは、テキスト ボックスが空白の場合にメッセージ ボックスがポップアップするという点で正常に機能します。メッセージ ボックスをクリアした後、すぐにもう一度 Enter キーを押すと、メッセージ ボックスが再び表示され、フォーカスがテキスト ボックスにあることが示されます。ただし、文字 (たとえば数字の「1」など) を入力しようとすると、テキスト ボックスに何も表示されません。
ユーザーがデータを入力できるように、このテキストボックスにフォーカスを戻す方法を誰か提案できますか? ありがとうございました!