プログラミング

マクロ(VBA)を使ってPDFをまとめて複数印刷する方法

請求書とか見積書をPDFでもらう機会って増えてきましたよね。

ただ、クソ押印文化のせいで、結局は紙で出力するはめに…

というわけで、マクロで指定フォルダのPDFを一気に全部印刷する方法をご紹介します。

あくまで、素人が作成したコードのため、使用は自己責任でお願いします。

マクロを書く前に下準備2つ

メカニズム

PDFを印刷するマクロを作成する前にいつもと違う準備を2つしておく必要があります。

まず、1つ目がライブラリファイルの追加です。

Windows Script Host Object Modelの追加!

追加といってもチェックするだけです。手順は以下の通り。

VBAの画面でツールボタンを選択

ライブラリ追加1

「参照設定」を選択

ライブラリ追加2

Windows Script Host Object Modelを選択

ライブラリ追加3

これで1つ目の準備は完了!

使用しているプリンタ名の確認

現在使用しているプリンタ名がわかっている人はこの作業をする必要ないです。

PDFを自動で印刷する際、プリンタ名を指定する必要があるため、プリンタ名を確認します。

VBAの画面で「Ctrl + G」を押して、イミディエイトウィンドウを開きます。

イミディエイトウィンドウに「application.ActivePrinter」と入力してエンターを押すとプリンター名が表示されます。

「~~~on Ne01:」の「on Ne01:」部分はプリンタ名ではないので無視する。~~~の部分がプリンタ名

これで下準備が完了しました。

PDFを複数一気に印刷するマクロ全文

一見、ゴチャゴチャ書いていますが、コードの本体はDo while~loopまでの6行だけです。今回のカスタマイズポイントは2点だけです。

フォルダの場所はPath=~~に記入

今回はサンプルとしてデスクトップにある’請求書’という名前のフォルダを指定しています。

これが例えばDドライブ直下にある’領収証’というフォルダであった場合、以下のようになります。

Path=”D:\領収証”&”\”

プリンタ名を指定るする

先ほどイミディエイトウィンドウで確認をしたプリンタ名を「printerName=~~」に入力します。

以上、2点を自分用にカスタマイズするだけで、指定フォルダのPDFファイルを一気に印刷してくれます。

ん?他のコードの説明。

詳しく知りたい人は他の人のサイトで勉強してください><

PDFをぽちぽち印刷する作業は今日で終わりだ

たった、6行のコードでPDF印刷を自動化できてしまいました。今回紹介したコードがマクロでPDFを印刷する基本形となります。

なので、例えば印刷したファイル名をエクセルに転記していくといった拡張をしていきたい場合はこのコードを基礎にやっていけばOKです。

関連記事