オフ固定されたテキストボックスに
数字以外(英字や-など)が含まれているかを
チェックするにはどうすればいいですか?
すいませんが回答をお願いします。
ここで言う「数字」が"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), "あり", "なし")
とか・・・。
質問がわかりにくいのですが、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演算子も思いましたが、正規表現とちょっと違う気がするのでわかりません。
Sayさん、Kenjiさん 回答していただきありがとうございます。
分かりやすい説明でしたので、スグに解決しました。
ありがとうございました。
ツイート | ![]() |