広告
IEで特定のページを開く→ 仮想プリンタでPDF印刷という作業を繰り返したい人向け。
[作業の流れ]
- 仮想プリンタ(BullzipやPDF reDirect等)をインストールして通常使うプリンタに設定する。
- ExcelでURLのリストを作り、マクロにPDF化するプログラムを記載して実行。
PDF_PRINT.xlsm
VBAコード
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
'Sleepを使うためライブラリを呼び出し #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) #End If Sub PRINT_PDF() 'URLリスト範囲 Const URL_LIST_HEAD = 1 Const URL_LIST_TAIL = 4 Const URL_LIST_ROW = 1 Dim UrlEntry As Long 'URL数分繰り返し For UrlEntry = URL_LIST_HEAD To URL_LIST_TAIL 'URLを指定してPDFで印刷する Call URL2PDF(Cells(UrlEntry, URL_LIST_ROW)) Next UrlEntry End Sub Function URL2PDF(URL As String) 'iexplore.exe起動 Set IE = CreateObject("InternetExplorer.Application") 'ブラウザ表示 IE.Visible = True 'URL指定したページを表示 IE.Navigate URL 'ページの読み込みが完了するまで待機 Do Until IE.Busy = False Sleep 250 Loop 'デフォルトのプリンタ(今回はPDF出力する仮想プリンタ)で印刷実行 'IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER IE.ExecWB 6, 2 'ENTER, ALT+F4(閉じる)キーの送信用 Set Sh = CreateObject("WScript.Shell") '適度なwait Sleep 3000 '仮想プリンタの印刷ボタンをポチッとな Sh.SendKeys ("{ENTER}") '適度なwait Sleep 10000 '閉じるボタン(ショートカットキー)(必要なら) 'Sh.SendKeys ("%" + "{F4}") '適度なwait Sleep 3000 Set Sh = Nothing 'IEを閉じる IE.Quit Set IE = Nothing 'IEのプロセスを強制終了 'IEを閉じるだけではプロセスが残り,次回のNavigateで失敗する場合があるので念のため Shell "taskkill /f /im iexplore.exe" '適度なwait Sleep 3000 End Function |
動けばいいやで作ったツールなので変なSleepの処理などはご容赦。
広告
広告