📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを完全一致で別ブックとして保存する方法

手作業で大量のエクセルファイルを個別に開いて保存するのは労力がかかるだけでなく、ミスも起こりやすい。この記事では、特定のフォルダ内の全ファイルを一括で別々のブックとして保存するVBAマクロを作成し、業務効率化を図る方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub SaveFilesAsSeparateBooks()
    Dim fso As Object, folder As Object, file As Object
    Dim wb As Workbook, ws As Worksheet
    Dim filePath As String, fileName As String
    
    ' フォルダパスを指定
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\\Users\\username\\Documents\\example_folder")
    
    Application.ScreenUpdating = False
    For Each file In folder.Files
        ' ファイル名が完全一致する場合のみ処理を実行
        If file.Name Like "*.xlsx" Then
            filePath = file.Path
            fileName = fso.GetBaseName(file)
            
            Set wb = Workbooks.Open(filePath)
            wb.SaveAs ThisWorkbook.Path & "\" & fileName & ".xlsx"
            wb.Close SaveChanges:=False
        End If
    Next file
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスやファイル名、拡張子が正しいか確認してください。また、アクセス権限があるかもチェックしましょう。