📘 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
    
    'フォルダのパスを指定
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\Example\Path")
    
    ws.Cells(1, 1).Value = "ファイル名"
    i = 2
    For Each file In folder.Files
        ws.Cells(i, 1).Value = file.Name
        i = i + 1
    Next file
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。