Think Twice
IT技術メモ | VBAのメモ
Created: 2021-07-08 / Updated: 2021-07-08

VBAで正規表現を使う


こちらはVBAで正規表現を使う方法のメモです。

目次


グループマッチした部分文字列の取り出し

Copy
' [参照設定] Microsoft VBScript Regular Expressions 5.5

Public Function searchCCC(rng As Range) As String
    Dim re As RegExp
    Set re = New RegExp
    With re
        .Pattern = "^【(.+)】(.+)_(.+)_(.+)$"
        .IgnoreCase = False
        .Global = True
        Dim reMatch As Object
        Set reMatch = .Execute(rng)
        If reMatch.Count > 0 Then
            If reMatch(0).SubMatches.Count > 0 Then
                searchCCC = reMatch(0).SubMatches(2)
                Exit Function
            End If
        End If
    End With
    searchCCC = "Not Found."
End Function

解説

こちら、参照設定でMicrosoft VBScript Regular Expressions 5.5が必要となります。
正規表現パターンは正規表現オブジェクト(RegExp)のobj.Patternプロパティにて設定します。

部分一致した部分文字列の取得について

正規表現オブジェクト(RegExp)のobj.Executeした結果、マッチオブジェクトが返ってくるので、.Countにて件数を確認し、.SubMatchesにて取得します。

デモ


参考

ソース

参考サイト