半角の0〜9と-以外の文字がテキストボックスに含まれたらエラーを起こすには?


あなみ  2006-12-30 01:06:39  No: 134742

開発環境  Xpプロフェッショナル  VB6.0
現在電話番号を登録できるプログラムを作っているんですけど、やりたいことは
最初にテキストの文字列を一文字ずつ調べて2バイトなら警告をだすという、この次が問題なんですが、0〜9と-以外の文字があったらMSGBOXで警告をだして登録できないようにしたいのですけど、イメージがわからなくて、困っています;

Private Sub Command1_Click()
Dim Si As Long
Dim Moro As String
Dim So As String

Moro = Text1.Text
    
    For Si = 1 To Len(Moro)
    So = Mid(Moro, Si, 1)
        If LenB(StrConv(So, vbFromUnicode)) > 1 Then
            MsgBox "全角は入力できません"
            Exit Sub
        End If
        
        If Not So = [0 - 9] Or "-" Then  ←ここが問題です;
            MsgBox "数字以外が含まれています"
        End If
    Next
End Sub

問題のところはもちろんエラーでます、ですがイメージはこんな感じなんですが;


K.J.K.  2006-12-30 02:36:11  No: 134743

Like演算子について調べてください。


我龍院  2006-12-30 02:39:04  No: 134744

If So < "0" Or So > "9" Then
こうかな。


我龍院  2006-12-30 02:41:24  No: 134745

被りましたが、Likeの方がいいですね。


我龍院  2006-12-30 04:04:25  No: 134746

連続投稿です。orz
TextboxのIMEModeプロパティを「8-半角英数」に
しておけば、半角/全角のチェックは要りません。
電話番号だと正規表現で
    Dim RE As New RegExp
    RE.Pattern = "\d{2,4}-\d{2,4}-\d{4}"
    If Not RE.Test(Text1.Text) Then
        MsgBox "入力に誤りがあります"
    End If
とやる手があります、なかなか完全なチェックは難しいですが。
正規表現はあまり詳しく有りませんのでパターンが最適では
無いかもしれません。


あなみ  2006-12-30 06:33:41  No: 134747

ありがとうございますー試してみますー


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

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






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