#517 | 数字以外のキー入力を受け付けないようにするには? | フォーム、VBA | |
テキストボックスの「KeyPress/キー入力時」イベントは、キーボードのキーが何か1つ押されるたびに発生するイベントです。これを利用すると、そこにキー入力された値が数字以外の場合には、キー入力自体を受け付けない(アルファベットなどを入力しようとしても何に入力されない)ようにすることができます。 それには、KeyPressイベントプロシージャで引数のKeyAsciiを調べ、それが指定の文字以外ならその引数に「0」を代入します。この引数KeyAsciiには押されたキーのアスキーコードが代入されています。また「0」をプロシージャ内で代入するとそのキー入力をなかったことにする、すなわち受け付けてくれないようになります。 なお、次のコード例では「And KeyAscii <> 8」という条件も付いています。これは”BackSpaceキーは受け付ける”という意味です。 コード例: Private Sub IPアドレス1_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) _ And KeyAscii <> 8 Then KeyAscii = 0 End If End Sub 実行例: 数字以外は何も受け付けてくれません 数字は受け付けてくれます ※ただし、IMEモードがONになっていると、全角でキー入力された数字を半角変換して確定しても上記のイベントは発生しません。そのため漢字なども入力できてしまうので、事前に「IME入力モード」プロパティを”使用不可”などに設定しておく必要があります。 |
|||
|
Copyright © T'sWare All rights reserved |