介紹如何在 Excel 中使用 VBA 巨集程式自動列出指定目錄中的所有檔案與子目錄列表,包含檔案名稱、路徑、大小、類型、修改日期等資訊。
列出目錄中所有檔案
若要在 Excel 的 VBA 巨集中,列出指定目錄之下的所有檔案,可以使用 FileSystemObject
物件建立一個目錄物件,再以迴圈逐一對目錄中的每一個檔案物件進行處理:
Dim oFSO As Object Dim oFolder As Object Dim oFile As Object Dim i As Integer ' 建立 FileSystemObject 物件 Set oFSO = CreateObject("Scripting.FileSystemObject") ' 建立目錄物件 Set oFolder = oFSO.GetFolder("C:\OfficeGuide\Excel") i = 2 ' 以迴圈列出所有檔案 For Each oFile In oFolder.Files Cells(i, 1) = oFile.Name ' 檔案名稱 Cells(i, 2) = oFile.Path ' 檔案路徑 Cells(i, 3) = oFile.Size ' 檔案大小(位元組) Cells(i, 4) = oFile.Type ' 檔案類型 Cells(i, 5) = oFile.DateCreated ' 檔案建立時間 Cells(i, 6) = oFile.DateLastAccessed ' 檔案上次存取時間 Cells(i, 7) = oFile.DateLastAccessed ' 檔案上次修改時間 i = i + 1 Next oFile
這段範例程式碼會列出 C:\OfficeGuide\Excel
目錄之下的所有檔案,執行的結果會類似這樣:
列出目錄中所有子目錄
若要立出指定路徑下的所有子目錄,作法跟列出檔案類似,使用 FileSystemObject
物件建立一個目錄物件,再以迴圈逐一對目錄中的每一個子目錄物件進行處理:
Dim oFSO As Object Dim oFolder As Object Dim oFile As Object Dim i As Integer ' 建立 FileSystemObject 物件 Set oFSO = CreateObject("Scripting.FileSystemObject") ' 建立目錄物件 Set oFolder = oFSO.GetFolder("C:\OfficeGuide") i = 2 ' 以迴圈列出所有子目錄 For Each oFile In oFolder.SubFolders Cells(i, 1) = oFile.Name ' 目錄名稱 Cells(i, 2) = oFile.Path ' 目錄路徑 Cells(i, 3) = oFile.DateCreated ' 目錄建立時間 Cells(i, 4) = oFile.DateLastAccessed ' 目錄上次存取時間 Cells(i, 5) = oFile.DateLastAccessed ' 目錄上次修改時間 i = i + 1 Next oFile
這段範例程式碼會列出 C:\OfficeGuide
目錄之下的所有子目錄,執行的結果會類似這樣: