【サンプル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
'一番右端の1文字が数字の場合
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
|