PR

【ExcelVBA】エクセルシートをPDFに変換してファイル出力する方法

ExcelVBA-PDF出力-アイキャッチ その他

エクセルのシートの情報をPDFファイルに変換してファイル出力する方法について説明しています。

スポンサーリンク

手動でエクセルをPDFとしてエクスポートする方法

手動でエクセルファイルをPDFファイルとして保存する場合はファイル→エクスポートで「PDF/XPSドキュメントの作成」をクリックして保存先を指定します。

スポンサーリンク

VBAでエクセルをPDF出力する方法

サンプルマクロ用に↓のようなシートを用意しました。
このシートの情報をPDFファイルに出力したいと思います。

ExcelVBA-PDF出力-シートの状態

サンプルマクロで実行している内容
アクティブシートの情報をPDFファイルとして保存します。
保存するPDFファイルのパスはマクロブックと同じ階層(ThisWorkbook.Path)に実行日の日付を付けて保存します。

Sub sample1()

     ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        filename:=ThisWorkbook.Path & "/" & Format(Date, "yyyyMMdd") & "_販売データ.pdf"

End Sub

マクロ実行後、PDFファイルが出力されました。
20241109_販売データ.pdf

ExcelVBA-PDF出力-マクロ実行後のフォルダ

PDFファイルをブラウザで開いた状態です。

ページ区切りを調節したい場合はエクセルの印刷設定で1ページに収めたい行数や、ページ区切り位置などを調節しておきます。(マクロの引数で指定することも可能です。)

スポンサーリンク

複数シートを1つのPDFファイルとして保存する場合

複数のシートを1つのPDFファイルとして出力したい場合はWorksheet.Selectメソッドを使用して対象のシートを選択しておいてからPDF出力を実行します。

Worksheets(Array(“Sheet1”, “Sheet2”, “Sheet3”)).Select

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 メソッドのパラメータ

引数の種類はたくさんありますが、型以外は省略可能です。

名前必須 /省略可能データ型説明
必須XlFixedFormatTypexlTypePDF または xlTypeXPS を指定。
FileName省略可能バリアント型 (Variant)保存するファイルの名前を示す文字列。
省略した場合はマクロブックが保存されている場所に出力されます。
Quality省略可能バリアント型xlFixedFormatQuality 定数として xlQualityStandard または xlQualityMinimum のいずれかを設定可能。
IncludeDocProperties省略可能バリアント型ドキュメント プロパティを含める必要があることを示す場合は True に設定し、省略されることを示すには False に設定。
IgnorePrintAreas省略可能バリアント型True に設定すると、発行する場合に印刷範囲が無視され、 False に設定されている場合は、発行時に設定された印刷領域を使用。
From省略可能バリアント型発行を開始するページのページ番号を指定。 この引数を省略すると、先頭のページから発行開始。
To省略可能バリアント型発行を終了するページの番号を指定します。 この引数を省略すると、最後のページまで発行します。
OpenAfterPublish省略可能バリアント型True に設定すると、発行後にビューアーにファイルが表示され、 False に設定すると、ファイルは発行されますが、表示されない。
FixedFormatExtClassPtr省略可能バリアント型FixedFormatExt クラスへのポインター。
スポンサーリンク

※コードのコピー利用について

・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。

タイトルとURLをコピーしました