【VBA】特定のフォルダ内の全ExcelファイルをバックグラウンドでPDF保存する方法
日々の業務で大量のExcelファイルをPDFに変換して保存しなければならない場合、その作業は非常に時間がかかります。この記事では、特定のフォルダ内の全Excelファイルを自動的にバックグラウンドでPDFに変換し保存するVBAマクロを作成します。これにより、手作業でのストレスやミスを大幅に軽減できます。
サンプルコード
VBA
Option Explicit
Sub SaveAllFilesAsPDF()
Dim fso As Object, folder As Object, file As Object
Dim wb As Workbook
Dim filePath 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
Set wb = Workbooks.Open(file.Path)
filePath = Replace(file.Path, fso.GetExtensionName(file.Path), "pdf")
wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath
wb.Close SaveChanges:=False
End If
Next file
Application.ScreenUpdating = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
フォルダパスやファイル名、拡張子が正しいか確認してください。また、Excelの保存形式が最新版に対応していることを確認してください。