📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルをエラー処理付きで抽出する方法

日々の実務で大量のファイルを手作業で確認するのは大変ですよね。特に特定のフォルダ内の全ファイルを一覧にまとめたい場合、時間がかかるだけでなくミスも増えるでしょう。この記事では、VBAを使用して簡単に解決策をお伝えします。

サンプルコード

VBA
Option Explicit
Sub ExtractFiles()
    Dim fso As Object, folder As Object, file As Object
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Application.ScreenUpdating = False
    On Error GoTo ErrorHandler
    
    'フォルダオブジェクトを作成
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\指定のフォルダパス")
    
    Dim i As Integer, lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
    For Each file In folder.Files
        ws.Cells(lastRow, 1).Value = file.Name
        ws.Cells(lastRow, 2).Value = file.Path
        lastRow = lastRow + 1
    Next file
    
    Application.ScreenUpdating = True
    Exit Sub
ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、フォルダパスが正しく指定されているかも確認しましょう。