Excelに入力したURLのページをChromeで開いて印刷するまでを自動化

いやー、できるだろうけど俺に出来るかな〜

なんて思いながらやって見たら案外サクッと出来たので残しておきます。

動作環境 まとめようとするとこんな感じ
・Chrome
・Excel
・プリンター(機種によって設定変更必要)

画面はこんな感じ

使い方は画面の通りで、A列にURLを列挙し、実行範囲を数値で指定して実行ボタンを押すだけ。

Chromeでサイトを開いて内容をプリントアウトしてくれます。

ソースコードは以下

Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub 自動印刷()

 rc = MsgBox("実行しますか?", vbYesNo + vbQuestion, "確認")
 If rc = vbYes Then
  Dim startData As Integer
  Dim endData As Integer
  startData = Cells(2, 13).Value
  endData = Cells(2, 15).Value
  Dim HPurl As String
  For i = startData To endData
    HPurl = Cells(i, 1)
    CreateObject("WScript.Shell").Run ("chrome.exe -url " & HPurl)
    Call Sleep(2000)
    SendKeys "^P"
    Call Sleep(2000)
    SendKeys "{ENTER}"
    Call Sleep(2000)
    SendKeys "^W"
    Call Sleep(2000)
   Next
 Else
    MsgBox "中止しました"
 End If
 
End Sub

やってることは以下の通り

 ・URLを引数にChromeを開くことで指定のページを開く

 ・印刷用のショートカット「Ctrl+P」を自動で叩く

 ・確定のため「Enter」を叩く

 ・プリンター設定に応じたキー(今回は「Ctrl+W」)を叩いて印刷する

すべてブラウザ(Chrome)で動かしているため、画面の切り替わり時間を考慮して各処理2秒間を空けています。

Excel上で動かしているだけなので、誤作動した場合はExcel閉じれば強制終了できますw

ダウンロードは以下から。
https://github.com/reiji02/url_print

コメント

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