古典的な方法だけど、これ以外ないでしょ。.Net あたりはテキストボックスを拡張して実現するのかな?
ただし以下のコーディングだけだとテキストボックス入力にて BackSpace キーの入力が無視される(Delete キーの入力はOK)。BackSpace キーの入力は拾ってあげた方が親切かもね。ちなみに BackSpace の KeyAscii は 8(=vbBack) である。
Private Sub Text1_KeyPress(KeyAscii As Integer) 'テキストに数字以外を入力できなくする。 '某ヘルプファイルに書いてあった素晴らしい方法。 'KeyAscii = 8(BackSpaceキー)は許可 If Not ((Asc("0") <= KeyAscii And KeyAscii <= Asc("9")) Or KeyAscii = vbback) Then '↑丁寧に書くなら ↓KeyAsciiを直接数値で書くなら If Not ((48 <= KeyAscii And KeyAscii <= 57) Or KeyAscii = 8) Then KeyAscii = 0 End If End Sub |