エクセルのマクロでのプリンタ自動切替について
エクセルのマクロ初心者ですが、ご教示いただければ幸いです。
業務で日々使用する様式をボタン一つで印刷できるよう、マクロを作成中です。
エクセルのファイルは共有ファイルサーバーに保存していて、各端末(例:WS0001、WS0002、WS0003…)から印刷したいと考えています。
各端末の「通常使うプリンタ」はPR0001なのですが、この様式はWS0001のUSBポートに繋がったPR0002から出力する必要があります。
WS0001とWS0002他から見た場合にプリンタのパスが異なるため、現状では
ActiveSheet.PrintOut ActivePrinter:="pr0002"
ActiveSheet.PrintOut ActivePrinter:="\\Ws0001\pr0002"
と2つのマクロを別々のボタンに割り当てていますが、ボタンを押し間違えることがあり、何とか1つのマクロにできないかと考えています。
例えば「"pr0002"が無い場合は"\\Ws0001\pr0002"から出力しなさい」といような記述は可能でしょうか?
On Error でできるのかと考え、
On Error GoTo 0
ActiveSheet.PrintOut ActivePrinter:="pr0002"
On Error GoTo 0
ActiveSheet.PrintOut ActivePrinter:="\\Ws0001\pr0002"
あるいは
On Error GoTo 0
ActiveSheet.PrintOut ActivePrinter:="pr0002"
ActiveSheet.PrintOut ActivePrinter:="\\Ws0001\pr0002"
と記述してみましたが、何故かPR0001とPR0002と2枚出力されて、上手くいきません。
ネットワーク上のプリンタ出力先の記述は、
Application.ActivePrinter = "\\Ws0001\pr0002 on NeXX:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,"""\\Ws0001\pr0002 on NeXX:"",,TRUE,,FALSE)"
と記述した方が確実なようですが、端末によってXXの数字が異なるようで、エラーになることがあります。
何卒よろしくお願いいたします。
お礼
早速試して、きちんと印刷ができました。 本当にありがとうございました。