フォルダ内文字列カウントソフト

Step 4 ファイル内を検索し文字列の出現数回数をカウントする

ここでは1つのファイル内をInstr関数で検索し、出現回数をカウントし返すプロシージャを作成します。

メニューに戻る

スポンサーリンク





実行画面

[検索フォルダ]ボタンをクリックすると、指定フォルダ内のファイル一覧を作成します、次にそのファイル内から検索文字列を検索しカウントします。結果はファイル名の横にカウント数を入力します。
ファイル名の横にカウント数を入力

スポンサーリンク



VBAコード

[検索フォルダ]ボタンのクリックイベントを下記に変更してください。

Private Sub CommandButton1_Click()
    Dim sDir As String
    
    If Range("C4") = "" Then
        MsgBox ("検索文字列を入力してください。")
        Range("C4").Select
        Exit Sub
    End If
    
    'フォルダー選択ダイアログ
    sDir = SelectFolder_FileDialog
    If sDir <> "" Then
        Range("C6") = sDir
        Range(Cells(9, 2), Cells(1000, 3)).ClearContents
        ExFolderSearch sDir, 9, 2
    End If
    
    'カウントの開始
    If Cells(9, 2) <> "" Then
        Call MyCountStart(9, 2)
    End If
End Sub

下記のプロシージャを追加してください。

'ファイル内の文字列カウント
Private Function MyCountFile(fname As String) As Long
    Dim fn As Long
    Dim n As Long
    Dim lc As Long
    Dim buf As String
    
    '一気に読み込み
    fn = FreeFile
    buf = Space(FileLen(fname))
    Open fname For Binary As #fn
        Get #fn, , buf
    Close #fn
    
    lc = 0
    n = 0
    Do
        n = InStr(n + 1, buf, Range("C4"))
        If n = 0 Then
            Exit Do
        Else
            lc = lc + 1
        End If
    Loop
    MyCountFile = lc

End Function

'カウントの開始
Private Sub MyCountStart(lRow As Long, lCol As Long)
    
    Cells(lRow, lCol + 2) = MyCountFile(Cells(lRow, lCol) & Cells(lRow, lCol + 1))
    
End Sub




メニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved