'-------------------------------------------------- 'RegexMatch関数 '-------------------------------------------------- '参照設定: Microsoft VBScript Regular Expressions ' '引数-------------------------------------------------- 'Str: チェックする文字列 'Pattern: チェックに使用する正規表現 'IgnoreCase: Trueなら大文字小文字を区別しない ' Falseなら大文字小文字を区別する ' '戻り値-------------------------------------------------- 'Boolean: 正規表現に文字列がマッチしているならTrue ' マッチしなければFlase ' 引数に問題があればFalse '-------------------------------------------------- Public Function RegexMatch(Str As String, Pattern As String, IgnoreCase As Boolean) On Error GoTo ERRHANDLER '正規表現 Dim regex As RegExp Set regex = New RegExp '引数チェック If IsNull(Pattern) Then RegexMatch = False Exit Function ElseIf IsNull(Value) Then RegexMatch = False Exit Function ElseIf IsNull(IgnoreCase) Then RegexMatch = False Exit Function End If '正規表現オブジェクトにパターンをセット regex.Pattern = Pattern regex.IgnoreCase = IgnoreCase '大文字小文字の区別フラグ '実行 'regex.Testメソッドで正規表現にマッチしたらTrueを返す If (regex.Test(Str)) Then RegexMatch = True Else RegexMatch = False End If Exit Function ERRHANDLER: If Err.Number = 5017 Then ret = MsgBox("不正な正規表現です" & vbCrLf & "メタ文字がエスケープされていません。", vbOKOnly, "Error:" & Err.Number) 'ex. \ 'ex. aa) ElseIf Err.Number = 5018 Then ret = MsgBox("不正な正規表現です" & vbCrLf & "量指定子(*?+{})が不正です", vbOKOnly, "Error:" & Err.Number) 'ex. ? ElseIf Err.Number = 5019 Then ret = MsgBox("不正な正規表現です" & vbCrLf & "[]が正しく入力されていません", vbOKOnly, "Error:" & Err.Number) 'ex. [a-z ElseIf Err.Number = 5020 Then ret = MsgBox("不正な正規表現です" & vbCrLf & "()が正しく入力されていません", vbOKOnly, "Error:" & Err.Number) 'ex. (a ElseIf Err.Number = 5021 Then ret = MsgBox("不正な正規表現です" & vbCrLf & "[]内の文字クラスが不正です", vbOKOnly, "Error:" & Err.Number) 'ex. [a-Z] ElseIf Err.Number = 5022 Then ret = MsgBox("不正な正規表現です", vbOKOnly, "Error:" & Err.Number) 'ex. Else MsgBox (Err.Number & Err.Description) End If RegexMatch = False Exit Function End Function
使い方
yyyymmdd = "2010/10/11" if RegexMatch(yyyymmdd, "^[0-9]{4}/[0-9]{2}/[0-9]{2}$", True) = True Then ret = MsgBox("日付形式にマッチ", vbOkOnly) End If
多分動くと思う(´・ω・`)