整数値のみを許可するようにユーザー入力を制限しようとしているユーザーフォームにテキストボックスがあります。私はこれを行うことができますが、動作は少し奇妙です。まず、私のコードは次のとおりです。
Private Sub txtAnswer_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii >= 48) And (KeyAscii <= 57) Then
Me.txtAnswer.SetFocus
Else
KeyAscii = 0
Me.txtAnswer.SetFocus
End If
End Sub
問題は、ユーザーが値を入力した後、フォーカスがテキストボックスから離れているように見えることです。さらに、ユーザーが整数値を入力した場合、この値はテキストボックスから削除されます(つまり、入力は「食べられ」ます)。SetFocus行は、コントロールを正しく動作させるための私の試みですが、効果がないようです。
私がしたいのは、ユーザーがテキストボックスに「r」(またはその他の整数以外の値)のようなものを入力しないようにすることだけです。0より大きい整数値は完全に受け入れられます(10や1000000などの複数桁の値を含む)。
私のアプローチがうまくいかない理由を誰かが理解できますか?私はいくつかの異なるアプローチを試し、かなり検索しましたが、うまくいくものを見つけることができません。
ありがとうございました