Excelにフォルダ内のファイル一覧を表示するVBAのサンプルコード

記事内に広告が含まれています。

Excel上にフォルダ内のファイル一覧を表示する、VBAのサンプルを公開してみます。

仕様

画面仕様

「検索パス」の欄が検索対象のフォルダです。

その下に「一覧表示」ボタンを押したときに、ファイル一覧が出てくるように、タイトルだけの一覧表が用意されています。

ソースコード

Dim RowNo As Long
Dim No As Long

Sub ボタン1_Click()

    Application.ScreenUpdating = False
    
    RowNo = 5
    No = 1
    
    Call ClearList
    Call FileSearch(Sheets(1).Cells(2, 2))
    
    Application.ScreenUpdating = True
    
End Sub
'一覧初期化
Sub ClearList()
    
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    Sheets(1).Rows("5:" & Cells.Rows.Count).Delete
    
End Sub
'ファイル検索
Sub FileSearch(Path As String)

    Dim FSO As Object
    Dim Folder As Variant
    Dim File As Variant
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    'サブフォルダ検索
    For Each Folder In FSO.GetFolder(Path).SubFolders
        Call FileSearch(Folder.Path)
    Next Folder
    
    'ファイル処理
    For Each File In FSO.GetFolder(Path).Files
        'No
        Sheets(1).Cells(RowNo, 1).Value = No
        No = No + 1
        
        'ファイル名
        Sheets(1).Cells(RowNo, 2).Value = File.Name
        'フルパス
        Sheets(1).Cells(RowNo, 3).Value = File.Path
        'リンク
        Sheets(1).Hyperlinks.Add Anchor:=Cells(RowNo, 4), Address:=File.Path, TextToDisplay:="リンク"
        
        RowNo = RowNo + 1
        
    Next File
    
End Sub

テスト実行

テスト用のフォルダの状態

下記のようなテスト用のフォルダ、ファイルを「C:\temp」に用意して実行してみました。

テスト結果

「一覧表示」ボタンを押下すると、検索パスに設定した「C:\temp」内のファイルが一覧化表示されました。

また、セルの中のリンクを押下すると、フルパスのファイルが開きます。(test2.txtは作りかけていた別件のプログラムです。)

その他の方法

ファイル一覧が欲しいだけであれば、コマンドプロンプトで取得することも可能です。

なので、コマンドプロンプトでファイル一覧を取得するケースも記事にしてみました。

しかしExcel VBAで実装するとボタン一つで再実行できます。

頻繁にファイル構成が変更される場合は、VBAによる実装も考えたほうが便利だと思います。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows10
2ExcelExcel2016
環境一覧

以上です。

コメント

タイトルとURLをコピーしました