📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルをエラー処理付きで別ブックとして保存する方法

日々の業務で大量のデータを取り扱う際、同じフォルダ内の複数のファイルから情報を抽出し個別のワークブックに保存することはよくあります。しかし手作業では時間がかかります。この記事ではVBAを使用して特定のフォルダ内の全てのワークシートをエラー処理付きで個別に保存する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub SaveSheetsAsSeparateBooks()
    Dim wb As Workbook, ws As Worksheet
    Dim folderPath As String, fileName As String, filePath As String
    Dim fileSysObj As Object
    Set fileSysObj = CreateObject("Scripting.FileSystemObject")
    folderPath = "C:\YourFolderName" 'ここにフォルダパスを指定してください。
    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        fileName = ws.Name & ".xlsx"
        filePath = folderPath & "\" & fileName
        If fileSysObj.FileExists(filePath) Then
            MsgBox "ファイルが既に存在します: " & fileName, vbExclamation
        Else
            wb.SaveAs Filename:=filePath, FileFormat:=xlOpenXMLWorkbook
        End If
    Next ws
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、ファイルパスに誤りがないかもチェックしてください。