スポンサーリンク
請求書とか見積書をPDFでもらう機会って増えてきましたよね。
ただ、クソ押印文化のせいで、結局は紙で出力するはめに…
というわけで、マクロで指定フォルダのPDFを一気に全部印刷する方法をご紹介します。
あくまで、素人が作成したコードのため、使用は自己責任でお願いします。
スポンサーリンク
目次
マクロを書く前に下準備2つ

PDFを印刷するマクロを作成する前にいつもと違う準備を2つしておく必要があります。
まず、1つ目がライブラリファイルの追加です。
Windows Script Host Object Modelの追加!
追加といってもチェックするだけです。手順は以下の通り。
VBAの画面でツールボタンを選択

「参照設定」を選択

Windows Script Host Object Modelを選択

これで1つ目の準備は完了!
使用しているプリンタ名の確認
現在使用しているプリンタ名がわかっている人はこの作業をする必要ないです。
PDFを自動で印刷する際、プリンタ名を指定する必要があるため、プリンタ名を確認します。
VBAの画面で「Ctrl + G」を押して、イミディエイトウィンドウを開きます。
イミディエイトウィンドウに「application.ActivePrinter」と入力してエンターを押すとプリンター名が表示されます。
これで下準備が完了しました。
PDFを複数一気に印刷するマクロ全文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub Print_PDF() Dim WSH As Object Set WSH = CreateObject("Wscript.Shell") Dim wshObj As IWshRuntimeLibrary.WshShell Set wshObj = New IWshRuntimeLibrary.WshShell Dim printPdf As String Dim fileName As String Dim filePath As String Dim printerName As String Path = WSH.SpecialFolders("Desktop") & "\" & "請求書" & "\" printerName = "プリンター名" fileName = Dir(Path & "*.pdf") Do While fileName <> "" filePath = Path & fileName printPdf = "AcroRd32.exe /t " & filePath & " " & printerName wshObj.Run (printPdf) fileName = Dir() Loop Set wshObj = Nothing End Sub |
フォルダの場所はPath=~~に記入
今回はサンプルとしてデスクトップにある’請求書’という名前のフォルダを指定しています。
これが例えばDドライブ直下にある’領収証’というフォルダであった場合、以下のようになります。
Path=”D:\領収証”&”\”
プリンタ名を指定るする
先ほどイミディエイトウィンドウで確認をしたプリンタ名を「printerName=~~」に入力します。
以上、2点を自分用にカスタマイズするだけで、指定フォルダのPDFファイルを一気に印刷してくれます。
ん?他のコードの説明。
詳しく知りたい人は他の人のサイトで勉強してください><
PDFをぽちぽち印刷する作業は今日で終わりだ
たった、6行のコードでPDF印刷を自動化できてしまいました。今回紹介したコードがマクロでPDFを印刷する基本形となります。
なので、例えば印刷したファイル名をエクセルに転記していくといった拡張をしていきたい場合はこのコードを基礎にやっていけばOKです。