📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルをバックグラウンドで配列に格納する方法

日々の業務では、大量のファイルを管理することが求められます。その中でも特定のフォルダ内の全ファイル名を一覧化することは非常に重要です。しかし手作業で行うと時間がかかります。そこでこの記事では、VBAを使用して特定のフォルダ内の全てのファイル名を配列に格納する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub GetFilesInFolderToArray()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim filesArray() As String
    Dim i As Long
    
    ' フォルダパスを指定
    Const FolderPath = "C:\Example\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(FolderPath)
    ReDim filesArray(1 To folder.Files.Count)
    i = 0
    
    ' フォルダ内の全ファイルを配列に格納
    For Each file In folder.Files
        i = i + 1
        filesArray(i) = file.Name
    Next file
    
    ' 配列の内容を表示(テスト用)
    Debug.Print Join(filesArray, vbCrLf)
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスやファイル名に問題がないか確認してください。