● 数字以外を入力できなくする ●

古典的な方法だけど、これ以外ないでしょ。.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

戻る