これは、フォルダー内のすべてのログ ファイルを見つけるためのコードです。ただし、各ファイルで特定の文字列を見つけることができる必要があります。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