Excel VBAで正規表現
Excel VBAで入力データが浮動小数点型かどうかチェックするにはどうする?文字列にして1文字毎にチェックするのは不具合を作り込んでください、と言ってるようなもんでしょ。こういう場合は正規表現の出番。ということで、Excel VBAで正規表現を使う方法を探したら、RegExp オブジェクトというのがあるらしい。準備としてツール>参照設定>Microsoft VBScript Regular Expressions 5.5にチェックを付ければOK。指数表現を考えなければこんな感じの関数で浮動小数点かどうかチェックできる。
Function isFloat(ByVal str As String) As Boolean Dim re As New VBScript_RegExp_55.RegExp With re .Pattern = "^[-+]?[0-9]*\.?[0-9]+$" .IgnoreCase = False .Global = True End With If re.Execute(str).Count > 0 Then isFloat = True Else isFloat = False End If End Function