【コピペ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保存できる
- チェックボックスでファイル名に日付を自動付与できる
- フォルダを選ぶだけの簡単操作!

