keyascii でBACKSPACEの判断ができない


助けってさん  2003-05-27 02:21:51  No: 107299

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-27 02:24:34  No: 107300

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

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

お教え願います!!


へぽ  2003-05-27 02:31:28  No: 107301

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

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


nanashi  2003-05-27 02:54:25  No: 107302

APIを使えば楽チンよ。

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


助けってさん  2003-05-27 23:40:43  No: 107303

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加