【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:\指定したフォルダパス")
Application.ScreenUpdating = False
For Each file In folder.Files
If Right(file.Name, 4) = ".xls" Or Right(file.Name, 5) = ".xlsx" Then
filePath = file.Path
fileName = fso.GetBaseName(filePath)
Set wb = Workbooks.Open(filePath)
wb.SaveAs ThisWorkbook.Path & "\" & fileName & ".xlsm"
wb.Close False
End If
Next file
Application.ScreenUpdating = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。