各セルを縦に読み込んで行き、正規表現で整形しながら横のセルに出力していくVBAのサンプルコード

記事内に広告が含まれています。

Excelの各セルを縦に読み込んで行き正規表現で整形しながら横のセルに出力するVBAのサンプルを紹介します。

仕様

ボタン押下後に、「変換前」の入力内容を正規表現で変換して、「変換後」に出力していきます。

ここでは正規表現の中身を「Bが連続して続いたら、B一文字に変換する」にしてみます。

ソースコード

Sub ボタン1_Click()

    Dim i As Long
    Dim maxRow As Long
    
    minRow = 2
    maxRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row '最終行
    
    '正規表現オブジェクトの設定
    Dim reg As Object
    Set reg = CreateObject("VBScript.RegExp")
    With reg
        .Pattern = "B+"  '正規表現パターン
        .IgnoreCase = False   '大文字と小文字を区別する
        .Global = True        '文字列全体を検索するか(True)
    End With
    
    For i = minRow To maxRow
        
        Cells(i, 2).Value = reg.Replace(Cells(i, 1).Value, "B")
        
    Next i
    
End Sub

設定

なお、ExcelVBAで正規表現を実行するためには、下記の設定が必要です。

設定内容

開発ツールの「Microsoft Visual Basic for Applications」のメニューバー「ツール(T) 」> 「参照設定(R)…」を順にクリックします。

「参照設定 – VBAProject」から「Microsoft VBScript Regular Expressions 5.5」を選択します。

テスト実行

ボタン押下前

ボタン押下前は3行目、4行目、5行目、に連続したBの文字列があります。

ボタン押下前

ボタン押下後

ボタン押下後に、B列に変換後の文字列が出てきました。

ボタン押下後

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows10
2ExcelExcel2016
環境一覧

以上です。

コメント