約100個のフォルダにXXXX_TestSummaryという名前のファイルを検索し、それらのファイルで "Failed"という単語を検索するマクロを作成したいとします。マクロは、wordが失敗したファイル名をテキストで返します。Excel VBAマクロfind .docファイル内のテキスト
私はちょうどフォルダのファイル名を見つけることができますように私は立ち往生しています。コードは次のとおりです
Sub MainList()
'Updateby20150706
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub
xDir = folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub
Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
For Each xSubFolder In xFolder.SubFolders
ListFilesInFolder xSubFolder.path, True
Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub
Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function
誰でもこの問題を解決できますか?
エラーは何ですか?なぜマクロが必要なのですか?リストされたフォルダはExcelにありますか?それらのすべてのサブフォルダとサブフォルダはありますか?もう少し具体的にできますか? – dgorti
フォルダーとサブフォルダー内のファイルがExcelに表示されていますが、.docファイルのみを検索できませんでした。&docファイルの検索に失敗しましたが、単語を含むファイル名が見つかりませんでした。 –
このコードを非常に重要なものに修正してくれますか? –