keyascii でBACKSPACEの判断ができない


助けってさん  2003-05-26 17:21:51  No: 107299  IP: [192.*.*.*]

1〜9以外の数字を入れたらセーフ、それ以外のものは(A、あ、a、ァなど)だめ、ということをしたかったのですが、入力までできたのですが、数字以外のものを入力して場合はその場で普通に消したいんですけど、でもBACKSPACEが利かなくって、BACKSPASEを押した時もエラーメッセージがでます。
初心者なんですけど、いろいろ試してみたんですけど、うまくいかなくって、どうか誰か教えってください。

Private Sub text2_KeyPress(KeyAscii As Integer)
 
    If KeyAscii >= Asc("1") And ("9") <= KeyAscii Then

    Else
        MsgBox "入力ミスです"
    End If

End Sub

編集 削除
助けってさん  2003-05-26 17:24:34  No: 107300  IP: [192.*.*.*]

すみません、慌てて書いてしまったので間違いました

1〜9以外の数字を入れたらセーフ  →  1〜9の数字を入れたらセーフ

お教え願います!!

編集 削除
へぽ  2003-05-26 17:31:28  No: 107301  IP: [192.*.*.*]

If Asc(KeyAscii) >= 48 And 57 <= Asc(KeyAscii) Or Asc(KeyAscii) == 8 Then

Else
        MsgBox "入力ミスです"
End If

編集 削除
nanashi  2003-05-26 17:54:25  No: 107302  IP: [192.*.*.*]

APIを使えば楽チンよ。

http://www.vbvbvb.com/jp/gtips/0701/gSetWindowLongEsNumber.html

編集 削除
助けってさん  2003-05-27 14:40:43  No: 107303  IP: [192.*.*.*]

もう一つお聞きしたいのですが、今は入力されたものをASC()が受取って、keyasciiにコードを渡して、メッセージボックスで表示しているのですが、
”ギ  ”と同類の文字のコードを表示させるのがうまくいてません、というのは
keyasciiで”ギ”を二文字として認識してるから、毎回”キ”だけの文字コードがでてきます。"ギ"のような字を入力時に判別するにはどうすればよろしいですか。
教えってください、おねがいします。

 If keyascii <= 221 And keyascii >= 177 Or keyascii = 8 Or keyascii = 13 Then
        Exit Sub
    Else
        MsgBox "半角のカタカナでお願いします"
        keyascii = 0
    End If

編集 削除