今回はVBAを使ってExcelの複数シートをまとめて1つのPDFファイルに変換する方法を紹介します。
ここではA社、B社、C社の3シートに分かれている明細書を1つの明細書(PDFファイル)にまとめます。
※サンプルデータはExcelのテンプレートにある明細書を使用しています。
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub PDF_Export() Dim Path As String Dim WSH As Object Dim OpenFileName As String Dim FolderName As String '作成するフォルダ名 FolderName = Format(Date, "yyyymmdd") '特殊フォルダの取得 Set WSH = CreateObject("WScript.Shell") 'デスクトップの位置を取得 Path = WSH.SpecialFolders("Desktop") & "\" 'カレントフォルダ変更 ChDir Path 'デスクトップに指定したフォルダがない場合作成する If Dir(Path & FolderName, vbDirectory) = "" Then MkDir Path & "\" & FolderName End If Dim FileName As String 'PDFで出力 Sheets.Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=Path & "\" & FolderName & "\" & "明細まとめ.pdf" End Sub |
保存先の指定が不要な場合はこちらを使ってください。
※保存先を指定しない場合は、「ドキュメント」フォルダに保存されると思います。
1 2 3 4 5 6 7 |
Sub PDF_Export2() 'PDFで出力 Sheets.Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:="明細まとめ.pdf" End Sub |
解説
VBAのコードを実行すると実行年月日のフォルダがデスクトップに存在するか確認し、存在しない場合はフォルダを作成します。
25行目の「Sheets.Select」で明細A~Cのシートを全選択にした状態でPDFに変換をすると1つのPDFにまとめることができます。
今回は2021年10月15日に実行したので、デスクトップに「202110015」フォルダが作成され、3シートをまとめたPDFファイルが出力されます。