【サンプル付き】大量のテキストファイルから指定データを抽出

下記図のように、一つのフォルダにある大量のテキストファイルから指定データのみ一瞬で抽出する方法を紹介します!

これならいちいちひとつずつテキストファイルを開く必要なく、ミスも減らせるね!

目次

大量のテキストファイルから指定データを抽出 サンプル

1つのフォルダに保存した大量のテキストファイルから特定の文字列の行のみデータを抽出したい

このようなケースで、下記図のようなテキストファイル(*.txt)から定数 SHITEI_DATAで指定した製品名が”maru-aaaj”の行データのみ抽出するスクリプトになります。

マクロが存在するファイルのWorksheet”Sheet1″にデータが抽出されるので注意してください。

Const PATH = "C:\Users\xxxx\OneDrive\デスクトップ\VBA\実践\大量のテキストファイルから指定データ抽出"
Const SHITEI_DATA = "maru-aaaj"

Sub 大量のテキストファイルから指定データを抽出()

    Dim folder_Path As String
    Dim bkPath_text As String
    Dim File_Name As String
    Dim buf_Space As String
    Dim v As Variant
    Dim File_Count As Long
    Dim i As Long, j As Long
    
    Application.ScreenUpdating = False
    ThisWorkbook.Worksheets("Sheet1").Activate

    'データクリア
    Range("A1:A1048576").ClearContents
    
    ChDir PATH
    
    MsgBox "テキストファイルからデータ抽出するよ!テキストファイルが入ったフォルダを選択してね!( ー`дー´)"

    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = True Then
            folder_Path = .SelectedItems(1)
        Else
            MsgBox "フォルダが正しく選択されなかったので終了します(#^ω^)"
            Exit Sub
        End If
    End With
    
    bkPath_text = Dir(folder_Path & "\*.txt")
    
    If bkPath_text = "" Then
        MsgBox "textファイルがありません(#^ω^)"
    End If
    
    j = 1
    
    Do 'テキストファイル数分繰り返し
        buf_Space = Space(FileLen(folder_Path & "\" & bkPath_text))
        Open (folder_Path & "\" & bkPath_text) For Binary As #1
            Get #1, , buf_Space
        Close #1
        
        '1行毎にSplit関数でデータ分割、配列に格納
        v = Split(buf_Space, vbCrLf)
    
        For i = 0 To UBound(v)
            
            If InStr(v(i), SHITEI_DATA) > 0 Then
                Cells(j, 1) = v(i)
                j = j + 1
            End If
    
        Next i
    
        File_Count = File_Count + 1
        bkPath_text = Dir
    '全ファイルアクセスすると終了
    Loop Until bkPath_text = ""

    MsgBox File_Count & "テキストファイルを処理しました(`・ω・´)ゞ"

End Sub

まとめ

サンプルは定数 SHITEI_DATAの値を書き換えていただくだけで、そのまま活用していただけます。

この記事がミス撲滅や生産性向上につながるととても嬉しいです。

VBA初級から抜け出すための知恵と、実務で活用できるスキルが学べる1冊です!激しくオススメ!

bookfan 2号店 楽天市場店
¥1,980 (2024/12/10 16:26時点 | 楽天市場調べ)

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

ものおと申します。

10年以上の大手メーカー勤務経験のあるエンジニアです。

これまでのものづくりの経験から小学生にも伝わるExcel VBAお役立ち記事を発信していきたいと思います。

よろしくお願いします。

コメント

コメントする

CAPTCHA


目次