#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入力モード」プロパティを”使用不可”などに設定しておく必要があります。
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved