Excelでフォルダ内のファイル一覧を取得するVBAサンプルコード【リンク付き】

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

Windowsのフォルダ内にあるファイル一覧をExcelで簡単に取得したい方向けのVBAサンプルコードです。

指定したフォルダ配下のファイル名・パス・リンクをボタン1つで一覧出力でき、業務効率化やツール作成に役立ちます。

コピペで動くシンプル構成なので、初心者の方でもすぐ使えます。

このマクロを使うと、

  • ファイル名一覧を自動取得
  • フルパスも同時に出力
  • クリックで開けるリンク付き
  • サブフォルダもまとめて検索

といったことがボタン1つで実行できます。

  • 「フォルダ内のファイル管理をExcelで行いたい」
  • 「一覧表をすぐ作りたい」
  • 「毎回手作業でコピーするのが面倒」

そんなときに便利なツールです。

《広告》

仕様

使い方

  1. 「検索パス」に対象フォルダを入力(例:C:\temp)
  2. 「一覧表示」ボタンをクリック
  3. ファイル一覧がシートに出力されます

出力される情報

  • ファイル名
  • フルパス
  • クリックで開けるリンク

※ 画面イメージは下の画像参照

ソースコード

Option Explicit
' グローバル変数
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」を用意して、テスト実行してみました。

testフォルダの下にはtest3.txtが格納されています。

テスト結果

「一覧表示」ボタンを押下します。

すると「検索パスのセルに指定した「C:\temp」に格納されているファイルが一覧表示されました。

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

参考情報

環境

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

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

以上です。

田舎のエンジニア

日本の田舎に住むITエンジニアです。
新卒からしばらくは東京都内で働いていましたが、30歳を過ぎた頃に自分の生き方を見直し、地方へ移住しました。
現在はノーコード、クラウド(Azure)、C# などを中心に、個人的な検証や学習を続けています。
自宅ではできるだけコストをかけず、実際に手を動かしながら試すことを大切にしています。
このブログでは、個人で取り組んだ技術的な試行錯誤や気づきを記録しています。

田舎のエンジニアをフォローする