📘 Excel逆引き事典

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

日々大量のデータ処理に追われている実務担当者にとって、手作業でのファイル転記は時間と労力の浪費です。しかし、この記事ではExcel VBAを活用することで、特定フォルダ内の全ファイルを高速かつ効率的に一括で転記する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub TransferFilesToArray()
    ' フォルダパスの指定
    Dim folderPath As String
    folderPath = "C:\\path\\to\\your\\folder"
    
    ' 配列宣言
    Dim files() As Variant
    ReDim files(1 To 0)
    
    ' フォルダ内のファイルリスト取得
    Dim fso As Object, folder As Object, file As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)
    
    Application.ScreenUpdating = False
    For Each file In folder.Files
        ReDim Preserve files(1 To UBound(files) + 1)
        files(UBound(files)) = file.Name
    Next file
    
    ' ワークシートへの転記処理
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    With ws
        .Cells.ClearContents
        For i = 1 To UBound(files)
            .Cells(i, 1).Value = files(i)
        Next i
    End With
    
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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