- ベストアンサー
EXCELネットワークプリンタでのポート名について
お世話になります。 私は社内でWin98SE、EXCEL97を使用して色々作成し 社内の方々の各パソコンに送って、使用してもらっています。 しかしサーバー上に接続されている通常使うプリンタでないネットワークプリンタの印刷で問題がでました。 私の環境と同じWin98、Excel97だと問題ないのですが、 社内の方でXP、EXCEL2000の環境の方々が結構います。 その環境ですと、エラーが出てしまいます。 ActivePrinter = "ネットワークプリンタ名 on NExx:" と言ってXP、EXCEL2000の環境では、on NExx:のポートを 記述しないとエラーが出てしまいます。 (Win98、Excel97では on NeXXの記述は不要です) ※上記のネットワークプリンタ名はExcelで入力します。 このポートを取得するには、どのような方法があるのでしょうか? また、簡単にWin98、Excel97の時のように、Nexx等を 設定しない方法をご存知の方よろしくお願い致します。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんには。以下は、Windows Script で通常使うプリンタを変更し、 プリントプレビューして、VBA で元のプリンタに戻してます。 Win2000 Excel2000 で動作確認しました。 Dim sActivePrinter As String With Application sActivePrinter = .ActivePrinter MsgBox sActivePrinter With CreateObject("WScript.Network") .SetDefaultPrinter "変更するプリンタ名" End With ActiveWindow.SelectedSheets.PrintPreview .ActivePrinter = sActivePrinter End With "変更するプリンタ名" には "‥ on NExx" は必要ありません。 注意点は変更直後、エクセルは通常使うプリンタをロストします。 しかし、プリントプレビューは成功します。(^_^; なぜロストするか謎ですが、プレビュー後に元に戻しているので問題ない、はず。
その他の回答 (1)
- kadakun1
- ベストアンサー率25% (1507/5848)
私も悩みました。マクロを書くと、その点でエラーになりました。一応、対象のPCから普通にプリントをかけると一瞬on NE01とか出るので、その番号を入れたのですが、これが変わる場合があるのです。 これには悩みました。で、結局は通常に使うプリンタにして印刷をかけるようなマクロにしました。 これだと、いちいち通常に・・・に変えなくてはいけないのですが(また元に戻す必要もある)他の方法は見つかりませんでした。(;^_^A アセアセ… 多分、サーバーの方で管理しているようなのですが、何故番号まで変わるのかが分かりませんでした。 mono_printer_check: printer_name = Application.ActivePrinter If InStr(printer_name, G_MONO_PRINTER_NAME) = 0 Then If MsgBox("使用するプリンタを " & G_MONO_PRINTER_NAME & " に設定して、OKボタンを押して下さい。", vbOKCancel) = vbOK Then GoTo mono_printer_check Else print_flg = False End If End If 参考まで。(この記述は私のPCのものなので、このままでは使用出来ないと思います。)
お礼
このポートNEXXに完全に振りまわされてしまいました。 アドバイスどうもありがとうございました。
お礼
ありがというございました。 無事できました。 しかし、この環境による違いには参りました。 感謝いたします。