テキストから含まれている文字をチェックするには?

解決


も-るず  2003-07-26 23:52:27  No: 78792

オフ固定されたテキストボックスに
数字以外(英字や-など)が含まれているかを
チェックするにはどうすればいいですか?
すいませんが回答をお願いします。


Say  2003-07-27 01:01:04  No: 78793

ここで言う「数字」が"0123456789"の
10キャラクタのみを意味するなら、
IsNumericで一発…というわけにはいかないので、
通常はループでまわしてMid関数で1文字ずつ切り出して、
文字コード,Like演算子,InStr関数
のいずれかでチェックすることになるでしょう。

あるいはちょっとロジックをひねって
    strBuf = Text1.Text
    For i = 0 To 9
        strBuf = Replace(strBuf, CStr(i), "")
    Next
    MsgBox IIf(Len(strBuf), "あり", "なし")
とか・・・。


Kenji  2003-07-27 01:12:58  No: 78794

質問がわかりにくいのですが、IMEオフのテキストボックスですね?

数字だけの場合OKと表示されるようにしてみます。
手っ取り早く済ますには
    If Trim(Str(Val(Text1.Text))) = Text1.Text Then
        MsgBox "OK"
    End If
で大丈夫そうです。この場合小数点も大丈夫になってしまいますが。

完璧にやるなら、1文字ずつチェックします。
    Dim i As Long
    Dim Flag As Boolean
    Dim temp As String
    
    temp = Text1.Text '文字列をキャッシュする
    Flag = False
    For i = 1 To Len(temp)
        Flag = (InStr(1, "0123456789", Mid$(temp, i, 1)) = 0)
        If Flag Then Exit For
    Next i
    
    If Flag Then
        MsgBox "NG"
    Else
        MsgBox "OK"
    End If

Like演算子も思いましたが、正規表現とちょっと違う気がするのでわかりません。


も-るず  2003-07-27 02:48:14  No: 78795

Sayさん、Kenjiさん  回答していただきありがとうございます。
分かりやすい説明でしたので、スグに解決しました。
ありがとうございました。


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

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






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