📘 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, tempPath As String
    
    ' フォルダパスを指定
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\TestFolder")
    
    Application.ScreenUpdating = False
    For Each file In folder.Files
        If InStr(file.Name, "部分一致文字列") > 0 Then ' 部分一致の条件を設定
            filePath = file.Path
            fileName = fso.GetBaseName(filePath)
            tempPath = ThisWorkbook.Path & "\" & fileName & ".xlsx"
            
            Set wb = Workbooks.Open(filePath)
            wb.SaveAs Filename:=tempPath, FileFormat:=xlOpenXMLWorkbook
            wb.Close SaveChanges:=False
        End If
    Next file
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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