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