いやー、できるだろうけど俺に出来るかな〜
なんて思いながらやって見たら案外サクッと出来たので残しておきます。
動作環境 まとめようとするとこんな感じ
・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
コメント