【コピペOK】フォルダ内Excelファイルのすべてのシートを一括PDF保存する方法【VBA】

Excelの全シートをまとめて一括PDF保存!超シンプルなVBAコード【コピペOK】

フォルダに入った複数のExcelファイルのすべてのシートをまとめて一括PDF保存したい方向けに、
シンプルなVBAコードをご紹介します!

手作業を自動化して、書類作成の効率をぐっとアップできるので、業務効率化を目指している方は必見です。

使い方(ステップガイド)

  • ステップ①:新しい空のExcelファイルを作成する
  • ステップ②:「開発」タブ → 「Visual Basic」→「挿入」→「標準モジュール」を選択
  • ステップ③:このページのVBAコードをコピペする
  • ステップ④:マクロを有効にして実行する

VBAコード(コピーボタン付き)

Sub SaveFolderAllSheetsAsPDF()
    Dim fDialog As FileDialog
    Dim folderPath As String
    Dim file As Object
    Dim wb As Workbook
    Dim pdfName As String
    Dim fso As Object
    Dim myFileName As String

    ' 自分自身のファイル名を取得
    myFileName = ThisWorkbook.Name

    ' フォルダ選択
    Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
    If fDialog.Show = -1 Then
        folderPath = fDialog.SelectedItems(1)
    Else
        Exit Sub
    End If

    ' フォルダ内ファイルをPDF化
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each file In fso.GetFolder(folderPath).Files
        If file.Name <> myFileName Then
            If LCase(fso.GetExtensionName(file.Name)) Like "xls*" Then
                Set wb = Workbooks.Open(folderPath & "\" & file.Name, ReadOnly:=True)
                pdfName = Left(file.Name, InStrRev(file.Name, ".") - 1) & ".pdf"
                wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folderPath & "\" & pdfName
                wb.Close SaveChanges:=False
            End If
        End If
    Next
End Sub
  

この記事のまとめ

  • フォルダ内のExcelファイルの全シートをまとめてPDF保存できる
  • チェックボックスなし、シンプル操作
  • 複数シートの書類(請求書+明細など)を一括管理できる!