|
▼eriko さん:
こんにちは。
もっと簡単な方法があるかもしれませんがとりあえず。
前後のスペースは除いた文字列を1文字づつ判断するようにしています。
OK_CHARにない文字があればエラーメッセージを表示します。
Option Explicit
Const OK_CHAR = "0123456789-"
Sub test()
'未入力
Call CheckNo("")
'スペースのみ
Call CheckNo(" ")
'数字のみ
Call CheckNo("123")
'前にスペース + 数字
Call CheckNo(" 123")
'前にスペース + 数字 + 後にスペース
Call CheckNo(" 123 ")
'間にスペース
Call CheckNo(" 12 3 ")
'数字以外入力
Call CheckNo("12a3")
'数字以外入力
Call CheckNo("12d3")
'数字、'-'混在
Call CheckNo("123-456-789")
''-'のみ
Call CheckNo("----")
End Sub
Sub CheckNo(ByVal pStr As String)
Dim sT As String
Dim nI As Integer
sT = Trim(pStr)
For nI = 1 To Len(sT)
If InStr(OK_CHAR, Mid(sT, nI, 1)) = 0 Then
MsgBox pStr & Chr(10) & "数字または'-'以外が入力されています。"
Exit For
End If
Next nI
End Sub
|
|