📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを完全一致でPDF保存する方法

毎回手作業でファイルをPDF化するのは時間と労力がかかります。この記事では、指定したフォルダ内の全てのExcelファイルを自動的にPDF形式に変換し保存する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub SaveFilesAsPDF()
    Dim fso As Object, folder As Object, file As Object
    Dim wb As Workbook, ws As Worksheet
    Dim filePath As String, fileName As String, pdfPath 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, 5) = ".xlsx" Then '完全一致で.xlsxファイルのみ対象
            filePath = file.Path
            Set wb = Workbooks.Open(filePath)
            fileName = Left(file.Name, Len(file.Name) - 5) & "_PDF.pdf"
            pdfPath = "C:\保存先フォルダパス\" & fileName
            wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
            wb.Close SaveChanges:=False
        End If
    Next file
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。