投稿者 ワシズ  (社会人) 投稿日時 2009/8/20 21:01:33
SP6.0

いつもお世話になっております。

ただいま、テキストボックスの入力制限について考えています。
テキストボックスは以下の条件で制限
・テキストボックスのプロパティIME Modeを3-オフ固定
・テキストボックスには4字までの入力
・「.(小数点)」を入力
・BackSpaceキーも有効

文字数の制限、0~9の半角数字入力、バックスペースの使用、できたのですが、
小数点(vbkeyDecimal)が入力できません。

Private Sub Text1_KeyPress(KeyAscii As Integer)

   '「1-9」[BackSpace]以外の入力はじき、5桁以上は入力不可 
    If Not IsNumeric(Chr$(KeyAscii)) And KeyAscii <> vbKeyBack + vbKeyDecimal Or _
       (Len(Text1.Text) >= 4 And KeyAscii <> vbKeyBack + vbKeyDecimal) Then
        KeyAscii = 0
    Else
        '全角を半角に変換する 
        KeyAscii = Asc(StrConv(Chr$(KeyAscii), vbNarrow))
    End If

End Sub


上記のコードだと、小数点、バックスペースともに使えません。
+vbKeyDecimalを消すとバックスペースは使えるため、
+vbKeyDecimalの書き方が悪いというのはわかるのですが。
また、vbKeyDecimalは、テンキーの小数点のみ使用ということでしょうか?
vbKeyDecimalを設定した場合、キーの「る」の小数点は使用不可能なのでしょうか?
できれば、キー側の小数点、テンキー側の小数点、どちらも使用可能にしたいですが。。。


ご教示お願いいたします。