エクセルのシートの情報をPDFファイルに変換してファイル出力する方法について説明しています。
手動でエクセルをPDFとしてエクスポートする方法
手動でエクセルファイルをPDFファイルとして保存する場合はファイル→エクスポートで「PDF/XPSドキュメントの作成」をクリックして保存先を指定します。
VBAでエクセルをPDF出力する方法
サンプルマクロ用に↓のようなシートを用意しました。
このシートの情報をPDFファイルに出力したいと思います。
サンプルマクロで実行している内容
アクティブシートの情報をPDFファイルとして保存します。
保存するPDFファイルのパスはマクロブックと同じ階層(ThisWorkbook.Path)に実行日の日付を付けて保存します。
Sub sample1()
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
filename:=ThisWorkbook.Path & "/" & Format(Date, "yyyyMMdd") & "_販売データ.pdf"
End Sub
マクロ実行後、PDFファイルが出力されました。
20241109_販売データ.pdf
PDFファイルをブラウザで開いた状態です。
ページ区切りを調節したい場合はエクセルの印刷設定で1ページに収めたい行数や、ページ区切り位置などを調節しておきます。(マクロの引数で指定することも可能です。)
複数シートを1つのPDFファイルとして保存する場合
複数のシートを1つのPDFファイルとして出力したい場合はWorksheet.Selectメソッドを使用して対象のシートを選択しておいてからPDF出力を実行します。
PDF出力後はSheet1だけを選択した状態に戻しておきます。
Sub sample2()
Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
filename:=ThisWorkbook.Path & "/" & Format(Date, "yyyyMMdd") & "_販売データ.pdf"
Worksheets("Sheet1").Select
End Sub
上のコードを実行するとSheet1がPDFの1ページ目、Sheet2がPDFの2ページ目、Sheet3がPDFの3ページ目として保存されます。(すべて1ページ内に収まる場合)
Workbook.ExportAsFixedFormat メソッドのパラメータ
引数の種類はたくさんありますが、型以外は省略可能です。
名前 | 必須 /省略可能 | データ型 | 説明 |
型 | 必須 | XlFixedFormatType | xlTypePDF または xlTypeXPS を指定。 |
FileName | 省略可能 | バリアント型 (Variant) | 保存するファイルの名前を示す文字列。 省略した場合はマクロブックが保存されている場所に出力されます。 |
Quality | 省略可能 | バリアント型 | xlFixedFormatQuality 定数として xlQualityStandard または xlQualityMinimum のいずれかを設定可能。 |
IncludeDocProperties | 省略可能 | バリアント型 | ドキュメント プロパティを含める必要があることを示す場合は True に設定し、省略されることを示すには False に設定。 |
IgnorePrintAreas | 省略可能 | バリアント型 | True に設定すると、発行する場合に印刷範囲が無視され、 False に設定されている場合は、発行時に設定された印刷領域を使用。 |
From | 省略可能 | バリアント型 | 発行を開始するページのページ番号を指定。 この引数を省略すると、先頭のページから発行開始。 |
To | 省略可能 | バリアント型 | 発行を終了するページの番号を指定します。 この引数を省略すると、最後のページまで発行します。 |
OpenAfterPublish | 省略可能 | バリアント型 | True に設定すると、発行後にビューアーにファイルが表示され、 False に設定すると、ファイルは発行されますが、表示されない。 |
FixedFormatExtClassPtr | 省略可能 | バリアント型 | FixedFormatExt クラスへのポインター。 |
※コードのコピー利用について
・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。