【VBA】特定のフォルダ内の全ExcelファイルをPDF保存する方法
日々の業務で大量のExcelファイルを管理している場合、各ファイルを個別に印刷してPDF化するのは非常に手間がかかります。この記事では、特定フォルダ内の全Excelファイルを一括でPDFに変換し、エラー処理も含めて効率的な業務改善を行います。
サンプルコード
VBA
Option Explicit
Sub ConvertToPDF()
Dim fso As Object, folder As Object, file As Object
Dim wb As Workbook
Dim filePath As String, fileName As String, savePath As String
' フォルダパスを指定
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\指定フォルダ名")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' フォルダ内の全ファイルを処理
For Each file In folder.Files
If Right(file.Name, 4) = ".xls" Or Right(file.Name, 5) = ".xlsx" Then
filePath = file.Path
fileName = Left(file.Name, Len(file.Name) - 4)
savePath = "C:\保存先フォルダ名\" & fileName & ".pdf"
' ファイルを開く
Set wb = Workbooks.Open(filePath)
On Error Resume Next
' PDFに変換して保存
wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath
On Error GoTo 0
' エラーが発生した場合はエラーメッセージを表示
If Err.Number <> 0 Then
MsgBox "Error: " & Err.Description & " in file " & filePath
End If
wb.Close SaveChanges:=False
End If
Next file
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
ファイル名やフォルダパス、保存先パスが正しいか確認してください。