正規表現を利用して指定した文字列を検索(マッチング)する。
指定のパターンが文字列内に存在するかを正規表現を利用して検索(マッチング)します。
VBAで正規表現を利用するにはRegExpオブジェクトを利用します。
RegExpオブジェクトを利用して指定のパターンの有無を検索(マッチング)し、その結果を返します。
文字列内に一致する文字列があれば True 、なければ False を返します。
'******************************************************************
' パターンに一致する文字列の検索
'******************************************************************
Sub Main_RegExpMatch()
'検索対象の文字列
Dim sString As String
sString = "1234abc@34"
'検索したい文字列パターン
Dim sPattern As String
sPattern = "abc.34$"
'検索
Dim bResult As Boolean
bResult = runRegExpTest(sString, sPattern)
'実行結果
Debug.Print "検索対象文字列 : " & sString
Debug.Print "検索パターン : " & sPattern
If bResult Then
Debug.Print "結果 : " & bResult & "(パターン一致あり)"
Else
Debug.Print "結果 : " & bResult & "(パターン一致なし)"
End If
End Sub
'******************************************************************
' 正規表現で文字列を検索
'------------------------------------------------------------------
' 第1引数:検索対象の文字列
' 第2引数:正規表現のパターン
'------------------------------------------------------------------
' 戻り値 :実行結果(True:一致あり、False:一致なし)
'******************************************************************
Function runRegExpTest(getStr As String, getPtn As String) As Boolean
Dim oReg As Object
Set oReg = CreateObject("VBScript.RegExp")
oReg.Pattern = getPtn '検索するパターンを設定
oReg.IgnoreCase = True '大文字と小文字を区別(True:しない、Flase:する)
oReg.Global = True '文字列全体を検索(True:する、Flase:しない)
'パターンに一致する文字列がある場合はTrue、ない場合はFalseが返される
runRegExpTest = oReg.Test(getStr)
Set oReg = Nothing
End Function■実行結果



