Excel

Excel VBA 列出目錄中所有檔案、子目錄教學與範例

介紹如何在 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
以 VBA 列出目錄中所有檔案

這段範例程式碼會列出 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 目錄之下的所有子目錄,執行的結果會類似這樣:

列出目錄中所有子目錄

參考資料

Share
Published by
Office Guide
Tags: VBA

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago