フォルダ内Excelファイルのアクティブシートだけを一括PDF保存するVBAコード

【コピペOK】フォルダ内Excelファイルのアクティブシートだけを一括PDF保存するVBAコード

フォルダに入った複数のExcelファイルから、アクティブシートだけを一括でPDF保存したい方向けの、シンプルなVBAコードをご紹介します。
手動保存の手間をゼロにして、業務効率化を実現できます。

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

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

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

Sub SaveFolderActiveSheetAsPDF()
    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.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folderPath & "\" & pdfName
                wb.Close SaveChanges:=False
            End If
        End If
    Next
End Sub
  

この記事のまとめ

  • フォルダ内のExcelファイルのアクティブシートだけを一括PDF保存できる
  • チェックボックスでファイル名に日付を自動付与できる
  • フォルダを選ぶだけの簡単操作!