Excel VBAでAcrobat Reader DCにpdf印刷させようとしてハマった話
CreateObjectでWScript.Shellのインスタンス作成するなり参照設定するなりしてcmdにコマンド送ればいいだけなのだが、Acrobat Readerが指定したPDFを印刷してくれなくて困った話。
原因はRICOHのプリンタ側の設定にある「白紙を節約」というモードを有効にしていたこと(しかもデフォで有効)
ミスって印刷が大量に指示されても爆死しないように白紙のPDFを指定データにして動作チェックをしていたのだが、「白紙を節約」モードのせいで印刷対象が消えるという……そりゃいくら組んだコード見直しても分からんワケだ。
ちなみにcmdに送るコマンドは以下でいい。
公式だとドライバーとかポートも引数に入ってるけどファイルパスとプリンタ名だけでいけた。
AcroRd32.exe /t path printername
パスやプリンタ名がスペース入りのときに""囲いを忘れないように以下のようにしといたほうが無難かも。
Dim Mycmd As String
Mycmd = "AcroRd32.exe /t " & Chr(34) & path & Chr(34) & " " & Chr(34) & printername & Chr(34)
しょうもないエントリだけどRICOH環境の人はそれなりにいると思うので誰かの役に立てば。
いいなと思ったら応援しよう!
よろしければサポートお願いします🥕
サポートはレビュー記事作成の原資となります