即効テクニック |
【サンプル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