Microsoft ExcelでVBAを使用して、フォルダ内のすべてのファイルの一覧の詳細
この記事では、フォルダー内のすべてのファイルの詳細を収集するマクロを作成します。
マクロを実行する前に、テキストボックスでフォルダのパスを指定する必要があります。
マクロを実行すると、フォルダ内のすべてのファイルのファイル名、ファイルパス、ファイルサイズ、作成日、最終変更日が返されます。
ロジックの説明
この記事では、「ListFilesInFolder」と「TestListFilesInFolder」の2つのマクロを作成しました。
「listFilesInFolder」マクロは、フォルダ内のすべてのファイルに関連する詳細を表示します。
「TestListFilesInFolder」マクロは、ヘッダーを指定し、「ListFilesInFolder」マクロを呼び出すために使用されます。
コードの説明
FSO = CreateObject( “Scripting.FileSystemObject”)を設定します
上記のコードは、ファイルシステムオブジェクトの新しいオブジェクトを作成するために使用されます。
SourceFolder = FSO.GetFolder(SourceFolderName)を設定します
上記のコードは、パスで指定されたフォルダーのオブジェクトを作成するために使用されます。
Cells(r、1).Formula = FileItem.Name Cells(r、2).Formula = FileItem.Path Cells(r、3).Formula = FileItem.Size Cells(r、4).Formula = FileItem.DateCreated Cells( r、5).Formula = FileItem.DateLastModified上記のコードは、ファイルの詳細を抽出するために使用されます。
SourceFolder.SubFolders内の各サブフォルダーについて ‘サブフォルダーに対して同じプロシージャを呼び出すListFilesInFolderSubFolder.Path、True Next SubFolder上記のコードは、サブフォルダー内のすべてのファイルの詳細を抽出するために使用されます。
Columns( “A:E”)。Select Selection.ClearContents上記のコードは、列AからEまでのコンテンツを削除するために使用されます。
コードについては以下に従ってください
Option Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Declaring variables Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Creating object of FileSystemObject Set FSO = CreateObject("Scripting.FileSystemObject") Set SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 For Each FileItem In SourceFolder.Files 'Display file properties Cells(r, 1).Formula = FileItem.Name Cells(r, 2).Formula = FileItem.Path Cells(r, 3).Formula = FileItem.Size Cells(r, 4).Formula = FileItem.DateCreated Cells(r, 5).Formula = FileItem.DateLastModified r = r + 1 Next FileItem 'Getting files in sub folders If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders 'Calling same procedure for sub folders ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder() 'Declaring variable Dim FolderPath As String 'Disabling screen updates Application.ScreenUpdating = False 'Getting the folder path from text box FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'Clearing the content from columns A:E Columns("A:E").Select Selection.ClearContents 'Adding headers Range("A14").Formula = "File Name:" Range("B14").Formula = "Path:" Range("C14").Formula = "File Size:" Range("D14").Formula = "Date Created:" Range("E14").Formula = "Date Last Modified:" 'Formating of the headers Range("A14:E14").Font.Bold = True 'Calling ListFilesInFolder macro ListFilesInFolder FolderPath, True 'Auto adjusting the size of the columns Columns("A:E").Select Selection.Columns.AutoFit Range("A1").Select End Sub
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください