Excel VBA マクロ:パターンマッチ(正規表現)した文字列をメッセージと別の列に書き出す

A列の様にURLが入っているなかから、ドメイン名だけをパターンマッチで取り出し、メッセージボックスで表示し、また、B列にも記入するマクロ

A B
1 https://kenlog.net/category/excel/
2 https://www.google.co.jp/

A B
1 https://kenlog.net/category/excel/ kenlog.net
2 https://www.google.co.jp/ www.google.co.jp

 

Sub RegExpSample()
    Dim RE, reMatch
    Dim strPattern As String
    Dim i As Long
    Dim msg As String
    Dim matchString As String

    Set RE = CreateObject("VBScript.RegExp")

    strPattern = "https?://([^/]+)/"     '検索パターン:ドメイン名の部分を()でグルーピング化

    With RE
        .Pattern = strPattern
        .IgnoreCase = True   '大文字と小文字を区別する
        .Global = False       '1回目のマッチで終了
        For i = 1 To ActiveSheet.UsedRange.End(xlDown).Row 'データが有る最終行まで
            Set reMatch = .Execute(Cells(i, 1))   'A列で検索実行
            If reMatch.Count > 0 Then             'マッチ
                matchString = reMatch(0).Submatches(0) '検索パターンのグルーピング化[()内]
                msg = msg & matchString & vbCrLf
                Cells(i, 2).Value = matchString   'B列に入れる
            End If
        Next i
    End With
    MsgBox msg
    Set reMatch = Nothing
    Set RE = Nothing
End Sub
タイトルとURLをコピーしました