Excel VBA 複数のExcelファイルを一気にPDF変換するマクロ 個人用マクロブックに組み込めるよ

Excel マクロ、VBA

スポンサーリンク

はじめに:複数のExcelファイルを一度に印刷したい

前回の記事では、今まさに開いているExcelファイルについて、PDF変換を素早く実施するマクロを取り上げた。

Excel VBA PDF変換をもっと更に簡単に済ませよう 個人用マクロブックに組み込めるマクロ

ただ、業務においては、複数のExcelブック(ファイル)をいっぺんに印刷したいということがよくある。

その際には、印刷する前にExcelファイルを全てPDF化して、場合によっては1つのPDFファイルに全て結合してしまえば効果的だ。
印刷前にイメージをまとめて確認しやすくなるからね。

そういうとき本当は、DocuWorksという文書管理ソフトがあれば、それが凄く使いやすくて最適なのだけどね。

今回はその目的を叶えるため、複数ExcelファイルをPDFに一括変換するマクロを取り上げる。

Excelファイルをたくさん印刷させられまくって大変だって人は、ぜひとも活用いただければと思います。

動作イメージ

では今回のマクロの動作イメージから。

今回のマクロは2つあって、複数のExcelファイルを開かせてそれを全部PDF変換するところはいずれも同じ。
で、それらPDFファイルをどうするかで

作成したPDFファイルの処理
(1)10個のExcelファイルがあったら、10個のPDFファイルを個別に作成する。PDFファイルは、処理時刻のフォルダを新規作成してその中に保存する。

(2)10個のExcelファイルがあろうと、生成されるPDFファイルは1つのみで、その中に10Excelファイル分のページが含まれる。

の2つに分けている。
たぶん、1つのPDFファイルに結合する(2)の方が使える場面が多いと思うけどね。

これらマクロを起動すると、Excelファイルを選択させる複数選択可能なダイアログが表示される。

マウスで囲むとかして、複数のExcelファイルを一括選択して実行すると、PDFファイルが生成される。

こういう、複数ファイルをダイアログから同時選択っていうのは、やり慣れない人も多いだろうけど、私は割と好んで使う。

で、マクロ実行の流れを動画にしてみた。

ソースコード

ではソースコード。
2つのマクロに共通化できる部分が多かった。

最初の「Function fncExcelToPDF」「Sub open_PDFSavePath」という2つのやつがそれね。

最後の「appSet」「appReset」というやつについては、こちらで触れています。

Excel 個人用マクロブック(Personal.xlsb) 最初に必ず入れておく高速化用コード

これら「mergeSheetsToPDF」「saveBooksAsPDF」マクロをExcelの個人用マクロブックに組み込んで使うと良いだろう。

個人用マクロブックとかについては、ここを展開。

オリジナルのマクロをリボンに追加する方法はこちら

個人用マクロブックについては、こちらこちらで述べています。

 

そこそこ難しいソースコードだとは思うけど、解説してたらキリがない感じだし、この辺りで。

スポンサーリンク