正規表現を利用しパターンに一致する文字列を置換する。
正規表現のパターンに一致した文字列を置換します。
VBAで正規表現を利用するにはRegExpオブジェクトを利用します。
RegExpオブジェクトのReplaceメソッドを利用してパターンに一致する文字列を置換します。
サンプルコードでは対象の文字列内にある 0~3 の1文字を全て * に置換しています。
'******************************************************************
' パターンに一致する文字列を指定の文字列に置換
'******************************************************************
Sub Main_Replace()
'置換対象の文字列(この文字列内に置換したい文字列パターンがあればその部分を置換)
Dim sString As String
sString = "AB01234aa5b7cc536xyz"
'置換させるパターン
Dim sPattern As String
sPattern = "[0-3]"
'置換文字
Dim sReplace As String
sReplace = "*"
'置換処理
Dim sReturn As String
sReturn = runRegExp_Rep(sString, sPattern, sReplace)
Debug.Print "置換前:" & sString
Debug.Print "置換後:" & sReturn
End Sub
'******************************************************************
' 正規表現で文字列を置換
'------------------------------------------------------------------
' 第1引数:置換前の文字列
' 第2引数:正規表現のパターン
' 第3引数:置換文字列
'------------------------------------------------------------------
' 戻り値 :置換後の文字列
'******************************************************************
Function runRegExp_Rep(getStr As String, getPtn As String, getRep As String) As String
Dim oReg As Object
Set oReg = CreateObject("VBScript.RegExp")
oReg.Pattern = getPtn '検索するパターンを設定
oReg.IgnoreCase = True '大文字と小文字を区別(True:しない、Flase:する)
oReg.Global = True '文字列全体を検索(True:する、Flase:しない)
'パターンに一致する文字列を引数:getRepの値に置換
runRegExp_Rep = oReg.Replace(getStr, getRep)
Set oReg = Nothing
End Function
Print■事項結果



