この記事では、フォルダー内のすべてのファイルの詳細を収集するマクロを作成します。

マクロを実行する前に、テキストボックスでフォルダのパスを指定する必要があります。

ArrowMain

マクロを実行すると、フォルダ内のすべてのファイルのファイル名、ファイルパス、ファイルサイズ、作成日、最終変更日が返されます。

ArrowOutput

ロジックの説明

この記事では、「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]までご連絡ください