2022年12月5日月曜日

vbaで英字or空白を含む文字列かを判定する方法

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といういう場合に使える。完璧を求めると、大変なので、これぐらいで手を打とうという時に使う。

0 件のコメント:

コメントを投稿