4

これは、フォルダー内のすべてのログ ファイルを見つけるためのコードです。ただし、各ファイルで特定の文字列を見つけることができる必要があります。1 つのファイルで見つかった場合は、検索を停止してループを終了し、それが含まれていたファイル名を報告します。

ファイルを開いて検索するにはさまざまな方法があるようで、どれが最適なのかわかりません。通常は VBA を使用しませんが、現時点でアクセスできるのは VBA だけです。

ちなみに、最大 36 個のログ ファイルがあり、各ファイルはそれぞれ最大 5MB です。

Sub StringExistsInFile()
    Dim TheString As String

    TheString = "MAGIC"

    Dim StrFile As String
    StrFile = Dir("c:\MyDownloads\*.log")
    Do While Len(StrFile) > 0
        'Find TheString in the file
        'If found, debug.print and exit loop
    Loop
End Sub

私はこのコードを見つけましたが、Excel VBA Application.FileSearch の 2007 以降のバージョンでは削除されたようです:

Sub FindText()
'http://www.mrexcel.com/forum/excel-questions/68673-text-file-search-excel-visual-basic-applications.html

Dim i As Integer

'Search criteria
With Application.FileSearch
    .LookIn = "c:\MyDownloads" 'path to look in
    .FileType = msoFileTypeAllFiles
    .SearchSubFolders = False
    .TextOrProperty = "*MAGIC*" 'Word to find in this line
    .Execute 'start search

'This loop will bring up a message box with the name of
'each file that meets the search criteria
    For i = 1 To .FoundFiles.Count
        MsgBox .FoundFiles(i)
    Next i

End With

End Sub
4

4 に答える 4

0

私は 2 番目の ans を使用しませんでしたが、最初の ans では、何かに欠陥があります! ラインで

パス = "C:\MyDownloads\*.log"

「*.log」を使用しないでください。パスは「C:\MyDownloads\」にする必要があります。

于 2013-10-18T10:24:08.237 に答える