📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを配列に格納する方法

日々の業務で大量のファイルを管理している場合、特定のフォルダ内の全ファイル名を一覧にする作業は非常に手間がかかります。この記事では、Excel VBAを使用して指定したフォルダ内のすべてのファイル名を配列に格納する方法を紹介します。これにより、確認メッセージが出ることなく高速で効率的に全ファイル名を取得できます。

サンプルコード

VBA
Option Explicit
Sub GetFilesIntoArray()
    Dim FolderPath As String, FileSpec As String
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim FilesList() As Variant
    Dim i As Long
    
    ' フォルダパスを指定
    FolderPath = "C:\TestFolder"
    
    ' ファイルの種類を指定(例:*.txt)
    FileSpec = "*.*"
    
    ' FSOオブジェクトを作成
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 指定したフォルダを開く
    Set folder = fso.GetFolder(FolderPath)
    
    ' フォルダ内のファイル数をカウント
    ReDim FilesList(1 To folder.Files.Count)
    i = 0
    For Each file In folder.Files
        i = i + 1
        FilesList(i) = file.Name
    Next file
    
    ' 配列の内容を表示(デバッグ用)
    Debug.Print Join(FilesList, vbCrLf)
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
フォルダパスやファイルの種類(FileSpec)が正しく指定されているか確認してください。