VBAでは入力が数値であるかを確認するためのIsNumeric関数が用意されています。
これ以外にも16進数や英数字であるかを確認したいときのための、そのまま使用できるサンプルコードを紹介します。
目次
16進数であるかを確認する
'*******************************************************************************
' 文字列が16進数であるかを確認
' input : str = 文字列
' return : True=16進数 / False=その他
'*******************************************************************************
Function IsHex(str As String) As Boolean
Dim RegExp As Object
Set RegExp = CreateObject("VBScript.RegExp")
'正規表現による確認
RegExp.Pattern = "^[0-9a-fA-F]+$"
IsHex = RegExp.test(str)
Set RegExp = Nothing
End Function
英数字であるかを確認する
'*******************************************************************************
' 文字列が英数字であるかを確認
' input : str = 文字列
' return : True=英数字 / False=その他
'*******************************************************************************
Function IsAlphanumeric(str As String) As Boolean
Dim RegExp As Object
Set RegExp = CreateObject("VBScript.RegExp")
'正規表現による確認
RegExp.Pattern = "^[0-9a-zA-Z]+$"
IsAlphanumeric = RegExp.test(str)
Set RegExp = Nothing
End Function
コメント