📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを配列を使って高速に抽出する方法

日々の業務では、大量のファイルから必要な情報を素早く取り出すことが求められます。手作業で行うと時間がかかるだけでなく、ミスも増えます。この記事では、Excel VBAを使って特定のフォルダ内の全ファイルを高速に抽出する方法を紹介します。

サンプルコード

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

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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