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