vbaで英字か空白を含む文字列であるか否かを判定するコードを考えてみた。
Function IsAlphabet(str As String) As Boolean
Dim objReg As Object
Set objReg = CreateObject("VBScript.REgExp")
objReg.IgnoreCase = True '大文字と小文字を区別しない
objReg.Pattern ="^[a-zA-Z a-zAZ ]+$
IsAlphabet = objREg.test(str) '英字か空白ならばTrue そうでなければFalse
Set objReg = Nothing
End Fuction
或いは、以下のコード。
Function IsAlpha(str as String) As boolean
If str ="" then
IsAlpha = False
Exit Fuction
End if
IsAlpha = Not str Like"*[!a-zA-Z a-zAZ ]*"
End Function
で、これを何に使うのかというと、例えば、名前に英字が使われていれば、外国人の名前か否かの判定に使える。
ま、パーフェクトではないが、大体それでOKといういう場合に使える。完璧を求めると、大変なので、これぐらいで手を打とうという時に使う。