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