目次
はじめに
Excelで作成した資料をPDF化したい場面は非常に多くあります。
特に業務で複数のExcelファイルを一括でPDF化する処理を自動化できると、大きな時短になります。
私自身、「フォルダ内のすべてのExcelファイルをPDFに変換したい」というニーズがあり、
VBAを使ってその処理を実装してみました。
使用するメソッド:ExportAsFixedFormat
ExcelのVBAには、ブックやシートをPDFファイルとして出力するための標準メソッドが用意されています。
それが、ExportAsFixedFormat
です。
このメソッドを使うことで、指定したシートやブックをPDF形式に変換して保存することが可能です。
コード例:シートをPDFに変換する
' 変数 ws に対象のシートがセットされている想定
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
パラメータの解説
Type:=xlTypePDF
→ 出力形式をPDFに指定しますFilename:=pdfFileName
→ 出力するPDFファイルの保存パスとファイル名を指定します(例:”C:\出力\sample.pdf”)Quality:=xlQualityStandard
→ 標準品質(印刷向け)で出力されますIncludeDocProperties:=True
→ 文書のプロパティ(タイトルや作成者など)を含めますIgnorePrintAreas:=False
→ シートに設定された印刷範囲を反映します。True
にすると全シートが対象になりますOpenAfterPublish:=False
→ PDF作成後、自動で開かない設定です。True
にすると自動で表示されます
実運用例:フォルダ内のExcelファイルをすべてPDFに変換
上記のコードをベースに、フォルダ内のExcelファイルを1つずつ開いてPDFに変換するといった処理も実装可能です。
- 対象フォルダを指定してファイル一覧を取得
- 拡張子
.xlsx
や.xlsm
を対象にループ処理 - 各ファイルを開いて目的のシートまたはブックをPDF変換
ExportAsFixedFormat
を呼び出して保存- 最後にブックを閉じる
これにより、大量のExcelファイルを自動でPDF化することができます。
まとめ
VBAのExportAsFixedFormat
メソッドを使えば、Excelファイルを簡単にPDFファイルに変換することが可能です。
設定も柔軟に変更でき、業務に合わせた出力が行えます。
特に、複数ファイルのバッチ処理と組み合わせれば、大幅な作業効率アップにもつながります。
少しでも参考になれば幸いです。