📘 Excel逆引き事典

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

日々の業務で大量のエクセルファイルを扱う場合、一つ一つ開いて作業するのは大変です。この記事では、指定したフォルダ内のすべてのエクセルファイルを外部参照として別ブックに保存するVBAマクロを作成し、効率的な業務処理をお伝えします。

サンプルコード

VBA
Option Explicit
Sub SaveAsExternalReference()
    Dim folderPath As String, fileName As String, fullPath As String
    Dim wb As Workbook, ws As Worksheet
    Dim fso As Object, folder As Object, file As Object
    
    ' フォルダパスの指定
    folderPath = "C:\Users\YourName\Documents\ExcelFiles"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)
    
    Application.ScreenUpdating = False
    ' フォルダ内の全ファイルを処理する
    For Each file In folder.Files
        If Right(file.Name, 4) = ".xls" Or Right(file.Name, 5) = ".xlsx" Then
            fullPath = file.Path
            Set wb = Workbooks.Open(fullPath)
            ' 新しいワークブックを作成し、外部参照として保存する
            wb.SaveAs folderPath & "\ExternalReference_" & wb.Name
            wb.Close SaveChanges:=False
        End If
    Next file
    
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスやファイル名、拡張子が正しいか確認してください。