小数点(ピリオド)を入力規制するには?

解決


紗綾  2005-06-14 19:47:30  No: 122585

Private Sub Text1_KeyPress(KeyAscii As Integer)

    Select Case KeyAscii
        
        Case vbKeyA
            If KeyAscii = vbKeyA Then
                KeyAscii = vbKey0
            Else
                KeyAscii = 0
            End If
        
        Case vbKeyB
            If KeyAscii = vbKeyB Then
                KeyAscii = vbKey1
            Else
                KeyAscii = 0
            End If
        
                (〜省略〜)
        
        Case vbKeyJ
            If KeyAscii = vbKeyJ Then
                KeyAscii = vbKey9
            Else
                KeyAscii = 0
            End If
            
        Case vbKeyBack
            If KeyAscii = vbKeyBack Then
                KeyAscii = vbKeyBack
            Else
                KeyAscii = 0
            End If
            
        Case vbKeyDelete
            If KeyAscii = vbKeyDelete Then
                KeyAscii = vbKeyDelete
            Else
                KeyAscii = 0
            End If
            
        Case Else
                KeyAscii = 0

    End Select

End Sub

上記のようなA〜Jの数字への割り当てと  BackspaceとDeleteキー以外は
尿力を受け付けないコードにしたのですが  「.」は入力を受け付けて
しまいます。
「.」の入力を受け付けないようにするには  どのようなコードにすれば
いいでしょうか?


紗綾  2005-06-14 20:10:17  No: 122586

事故解決しました


特攻隊長まるるう  2005-06-14 20:20:55  No: 122587

質問掲示板を利用した以上、この質問は掲示板を利用する人たち全員の財産と
なります。自己解決した場合でも、どんな答えが出たのか報告します。
>上記のようなA〜Jの数字への割り当てと  BackspaceとDeleteキー以外は
テキストボックスで Delete キー拾えた???
ちょっとVBに用意された定数に間違いがあると思われるので、

Private Sub Text1_KeyPress(KeyAscii As Integer)
    Debug.Print CStr(KeyAscii)
    Debug.Print CStr("vbKeyDelete? " & vbKeyDelete)
End Sub

で、何のキーを押した時にどんな値が引数に渡されるか確認すれば
解決すると思われます。


ぶぶ  2005-06-14 20:25:47  No: 122588

自己解決されているようですが、ちょっと気になったのでひとつ
>Private Sub Text1_KeyPress(KeyAscii As Integer)
>
>    Select Case KeyAscii
>        Case vbKeyA
>            If KeyAscii = vbKeyA Then
>                KeyAscii = vbKey0
>            Else
>                KeyAscii = 0
>            End If
 
Select Case でKeyAscii がvbKeyAかは聞いているので Caseの中の if文は
聞かずにkeyAscii = vbkey0でいいかと思います。


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

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






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