見出し画像

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環境の人はそれなりにいると思うので誰かの役に立てば。


よろしければサポートお願いします🥕 サポートはレビュー記事作成の原資となります