構文
構文は以下の通りです。
Private Sub テキストボックス名_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
解説
テキストボックス名_KeyPressは、テキストボックスのKeyPressイベントで、ユーザーがキーを押したときに実行されるコードを記述します。KeyAsciiは、押されたキーのASCIIコードを表します。数字の0〜9はASCIIコードで48〜57に対応しています。条件式は、If Not (KeyAscii >= 48 And KeyAscii <= 57)で、押されたキーが数字以外であれば、KeyAscii = 0にして、そのキー入力を無効化します。
プログラミング例
具体的なプログラミング例を紹介します。
Private Sub 数字入力テキストボックス_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
上記のプログラムでは、ユーザーが「数字入力テキストボックス」という名前のテキストボックスに入力する際に、数字以外のキーが押された場合、その入力を無効にします。例えば、アルファベットや記号が押された場合、それらは入力されず、無視されます。これにより、テキストボックスには数字だけが入力できるようになります。
まとめ
KeyPressイベントを使用して、テキストボックスに入力できる文字を制限できます。KeyAsciiを使って、数字のASCIIコードに該当するキーだけを許可し、それ以外は無効化します。この方法を使うと、特定の条件(この場合は数字のみ)に従った入力制限を簡単に実装できます。