ActivePrinterにプリンタ名をそのまま代入してもエラーになります。 「プリンタ名 on ポート名」の形式でないと駄目なようです。 しかも、そのポート名が、USBポートのように:抜きで6文字以上の場合、 ユーザが設定し、プリンタのプロパティで表示されるポート名ではなく、 OSが勝手に割り当てたネットワークポート名のNe??:なのです。 ユーザはこれをどうやって指定すればよいのでしょうか? 全く困ったものです。 Ne??:に対応するだけなら、VBAだけで割り出せます。 Sub SetActivePrinter1(Name) Dim n Dim PortName For n = 100 To 199 PortName = Name & " on Ne" & Right(n, 2) & ":" TrySetActivePrinter PortName If Err = 0 Then Ex
![ExcelのApplication.ActivePrinterは「仕様障害」? - Windows Script Programming](https://cdn-ak-scissors.b.st-hatena.com/image/square/03b096f6c04dfa322532982e16dc3d5978abb730/height=288;version=1;width=512/http%3A%2F%2Fscripting.cocolog-nifty.com%2F.shared-cocolog%2Fnifty_managed%2Fimages%2Fweb%2Fogp%2Fdefault.png)