スポンサーリンク

VBAで正規表現置換関数

VBAで使える正規表現関数を作ってみた。

'**************************************************************
'* 関数名:RegExpReplace2
'* 概要:正規表現置換
'* 使い方:
'* パラメータ:
'*  (I)s1           文字列
'*  (I)sPattern     正規表現パターン
'*  (I)sReplaceStr  置換後文字列
'*  (I)bGlobal      ReplaceメソッドやExecuteメソッドを呼び出すとき、
'*                  複数マッチを行うかどうかを表すブール値です。
'*                  Trueに設定された場合、正規表現にマッチするすべての部分に対して
'*                  検索・置換が行われます。初期値はFalseに設定されています。
'*  (I)bMultiLine   文字列を複数行として扱うかどうかを表すブール値です。
'*                  Trueに設定すると、各行の先頭や末尾でも"^"や"$"がマッチするようになります。
'*                  初期値はFalseに設定されています。
'*
'* 戻り値     :変換後文字列
'**************************************************************
Public Function RegExpReplace2(s1 As String _
                            , sPattern As String _
                            , sReplaceStr As String _
                            , Optional bGlobal As Boolean = False _
                            , Optional bMultiline As Boolean = False _
                            )
    Dim oRegExp As REGEXP
    Set oRegExp = New REGEXP
    
    oRegExp.Pattern = sPattern                          ' 正規表現パターン
    oRegExp.IgnoreCase = False                          ' 大文字小文字を区別
    oRegExp.Global = bGlobal                            ' 複数マッチ設定
    oRegExp.MultiLine = bMultiline                      '
    RegExpReplace2 = oRegExp.Replace(s1, sReplaceStr)   ' 置換
    
End Function


あといろいろな使い方

No10のような使い方ができると正規表現置換でファイルの特定箇所の文字列置換ができて便利。