テキストファイルを読み込んで、正規表現で絞り込み、Excelに出力するVBAのサンプルコード

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

テキストファイルから読み込んで、正規表現で絞り込みして、Excelファイルに出力するVBAのサンプルを紹介します。

仕様

ファイルを1行ずつ読み込み、正規表現にマッチした場合、Excelセルに書き込みます。

今回は正規表現の例として「^.A.$」のパターンにマッチしたものを抽出します。

※正規表現の内容は「行の中にAの文字が含まれること」です。

ソースコード

Sub ボタン1_Click()

    Dim i As Long
    Dim inputFileName As String
    Dim fileNumber As Long
    Dim fileLine As String
    
    '正規表現オブジェクトの設定
    Dim reg As Object
    Set reg = CreateObject("VBScript.RegExp")
    With reg
        .Pattern = "^.*A.*$"  '正規表現パターン
        .IgnoreCase = False   '大文字と小文字を区別する
        .Global = True        '文字列全体を検索するか(True)
    End With
    
    
    fileNumber = FreeFile
    inputFileName = "C:\temp\test3\input.txt" 'ファイル格納先
    
    Open inputFileName For Input As fileNumber
    i = 2  '2行目から
    Do While Not EOF(fileNumber)
        Line Input #fileNumber, fileLine
        
        If reg.Test(fileLine) Then 'パターン判定
            Cells(i, 1) = fileLine
            i = i + 1
        End If
        
    Loop
    Close #fileNumber

End Sub

設定

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

設定内容

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

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

テスト実行

テストファイル

テスト用のテキストファイルとして下記のような「C:\temp\test3にinput.txt」を格納しています。

変数のinputFileNameに指定した場所に格納すればOKです。

ボタン押下後

ボタンを押下すると、正規表現”^.A.$”にマッチした1行目、2行目、4行目がファイルから取得されました。

参考情報

環境

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

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

以上です。