📘 Excel逆引き事典

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

日々大量のExcelファイルを扱う業務では、個別にファイルを開いてPDFに変換するのは効率が悪いですよね。この記事では、特定のフォルダ内の全てのExcelファイルを一括でPDFに変換し保存するVBAマクロを作成します。

サンプルコード

VBA
Option Explicit
Sub ConvertAllFilesToPDF()
    Dim folderPath As String
    Dim fileName As String
    Dim filePath As String
    Dim wb As Workbook
    
    ' フォルダパスを指定
    folderPath = "C:\Users\YourName\Documents\ExcelFiles"
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    fileName = Dir(folderPath & "*.xlsx")
    Do While fileName <> ""
        filePath = folderPath & fileName
        Set wb = Workbooks.Open(filePath)
        ' PDF保存の設定
        With wb.PublishObjects.Add(xlPubHTML, , wb.Name, ActiveSheet.Name, xlQualityStandard)
            .File = Replace(wb.FullName, "xlsx", "pdf")
            .Publish (True)
        End With
        wb.Close SaveChanges:=False
        fileName = Dir()
    Loop
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスやファイル名、拡張子が正しいか確認してください。また、アクセス権限がない場合もエラーの原因となることがあります。