HOME > 即効テクニック > Excel VBA > その他関連のテクニック > テキストボックスに数字のみ入力許可する

即効テクニック

その他関連のテクニック

テキストボックスに数字のみ入力許可する

(Excel 97/2000/2013/2016)
【サンプル1】
テキストボックス「TextBox1」のプロパティでIMEModeを 2-fmIMEModeOff に設定します。
Changeイベントに次の処理を記述します。
Private Sub TextBox1_Change()
    If Len(TextBox1.Text) = 0 Then
        Exit Sub
    End If
    
    If IsNumeric(Right(TextBox1.Text, 1)) = True Then
        Exit Sub
    End If
    
    TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
    
End Sub
TextBox1に変更があったとき、一番右端の1文字が数字かどうか判断して数字なら何もしない、数字以外は一番右端の1文字を削るようにしています。

【サンプル2】
テキストボックスのキープレスイベントのプロシージャです。Chr(KeyAscii) で、入力した文字コードに対応する値を返しています。
返ってきた値が、0から9の間だったら、有効、それ以外だったら無効にします。
KeyAscii=0の0に割り当てられている文字はありませんので、何も入力されない、すなわちキー入力が無効になります。
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
        KeyAscii = 0
    End If
End Sub