• ベストアンサー

EXCELネットワークプリンタでのポート名について

お世話になります。 私は社内でWin98SE、EXCEL97を使用して色々作成し 社内の方々の各パソコンに送って、使用してもらっています。 しかしサーバー上に接続されている通常使うプリンタでないネットワークプリンタの印刷で問題がでました。 私の環境と同じWin98、Excel97だと問題ないのですが、 社内の方でXP、EXCEL2000の環境の方々が結構います。 その環境ですと、エラーが出てしまいます。 ActivePrinter = "ネットワークプリンタ名 on NExx:" と言ってXP、EXCEL2000の環境では、on NExx:のポートを 記述しないとエラーが出てしまいます。 (Win98、Excel97では on NeXXの記述は不要です) ※上記のネットワークプリンタ名はExcelで入力します。 このポートを取得するには、どのような方法があるのでしょうか? また、簡単にWin98、Excel97の時のように、Nexx等を 設定しない方法をご存知の方よろしくお願い致します。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • komet163
  • ベストアンサー率51% (22/43)
回答No.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" は必要ありません。 注意点は変更直後、エクセルは通常使うプリンタをロストします。 しかし、プリントプレビューは成功します。(^_^; なぜロストするか謎ですが、プレビュー後に元に戻しているので問題ない、はず。

periodayo
質問者

お礼

ありがというございました。 無事できました。 しかし、この環境による違いには参りました。 感謝いたします。

その他の回答 (1)

  • kadakun1
  • ベストアンサー率25% (1507/5848)
回答No.1

私も悩みました。マクロを書くと、その点でエラーになりました。一応、対象の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のものなので、このままでは使用出来ないと思います。)

periodayo
質問者

お礼

このポートNEXXに完全に振りまわされてしまいました。 アドバイスどうもありがとうございました。

関連するQ&A

  • VB.NETからExcelを開きプリンタ名を指定

    いつも大変お世話になっています。 VB.NETからExcelを開きプリンタ名を指定方法について ご助力お願いします。 以下の処理は、指定したプリンタ名を Excelのプリンタ名のデフォルト値として設定しています。 ――――――――――――――――――――――― ' Excel.Application の新しいインスタンスを生成する Dim xlApplication As New Excel.Application() Dim xlBooks As Excel.Workbooks ' xlApplication から WorkBooks を取得する xlBooks = xlApplication.Workbooks ' 既存の Excel ブックを開く xlBooks.Open(txtPath.Text) Dim i As Integer For i = 0 To System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count  Try    ’※    xlApplication.ActivePrinter= 「プリンタ名」 & " on Ne" & Format(i, "00") & ":"   Exit For  Catch ex As Exception   Debug.Print(ex.Message)  End Try Next ' Excel を表示する xlApplication.Visible = True ――――――――――――――――――――――― ◆※について 「on Ne」ですが、恐らくネットワークポートを指していると思います。 その他のポートを指す「on Ne」のようなものは他にもあるのでしょうか? 例えば、「on LPT」?「on COM」?とか… ◆指定したプリンタ名のポート(on Ne)取得について 指定したプリンタが使用しているポート(on Ne)を取得する方法が ありましたら教えてください! 以上です。よろしくお願い致します。

  • エクセルのマクロでのプリンタ自動切替について

    エクセルのマクロ初心者ですが、ご教示いただければ幸いです。 業務で日々使用する様式をボタン一つで印刷できるよう、マクロを作成中です。 エクセルのファイルは共有ファイルサーバーに保存していて、各端末(例: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の数字が異なるようで、エラーになることがあります。 何卒よろしくお願いいたします。

  • エクセルのマクロでプリンタを指定したいのですが

    エクセルのマクロで共有のネットワークプリンタを指定しているのですが Application.ActivePrinter = "*********** on Ne**:" Ne**の部分がパソコンを再起動すると変更されてしまうようでうまくいきません。~on Ne**:の記述なしでプリンタを指定する方法はないでしょうか?

  • エクセルVBAでのネットワークプリンタのポー名の取得方法は?

    サーバーに置いてある、ひとつのExcelシートをマクロを使用して印刷時のプリンターや範囲指定をしたかったのですが、各端末でアクティブプリンターの名称(ポート名)が異なっており、うまくいきません。 具体的には「プリンター名 on ポート名" の「ポート名」の部分が端末ごとで異なっています。 なに良い解決策があれば、教えてください。 ※現在の状況 プリンター:同一のものが2台。LAN上で特定の固定IPを使用。 端末:複数台とも全てWinXP/Excel2003。LAN上でDHCPにて、サーバーより動的IPを使取得。

  • ネットワークプリンタのポート

    ネットワークプリンタのポート Windows Vista HP SP2につなげているプリンタ(レーザー複合機)におきまして、プリントは問題なくできているのですが、スタートメニュー→プリンタで該当のプリンタのプロパティでポートを確認しますと、割り当てているのとは異なるIPアドレスが表示されています。 前述のようにプリントは出来ていますが、表示されているIPアドレスはNAS(ネットワークHDD)のものですので、非常に気持ちが悪いのです。 このプロパティに表示されているポートを修正するにはどのようにしたら宜しいのでしょうか。 ご教示のほど、宜しくお願い致します。

  • ネットワークプリンターについて

    お世話になります。 社内の小さなLANで、プリンターを共有しています。あるPCにUSB接続しているプリンタを使用するのに、一度そのPCのユーザとしてログインしなければならないのですが、そうしなくてもよい何か良い方法をお教え下さい。一応、ネットワークでファイルとプリンタの共有の設定はしてあるのですが。OSはXPーPROです。 また、別のPCも同じような状況なのですがこれはノートPCでOSはWIN2000です。社内の他のPCはXP-homeです。 よろしくお願いいたします。

  • ポート【ネットワークプリンタ・ローカルプリンタ】

    IP2600を使っています。 パソコンはWindows XPです。 元々は使うときにPCの近くまで運んで直接繋いでいたのですが、 このあいだ会社の課長が繋がなくても印刷できるように設定してくれました。 それはありがたい!と、バリバリ活用していました。 私はIP2600でプリントする時は必ずと言っていいほどマックのノートPCを使います。 それだとワイヤレスで快適にプリントできたのですが… この間ウィンドウズからIP2600を使う機会があったので、 マックのときと同様にプリントしましたが、 できない! しかし、USBポートに差し込んで直接プリンタとPCを繋げばバッチリ印刷できます。 要するに、「ワイヤレスでのプリントができない」ということです。 何故だろうと思って色々とやってみました。 1.≪再起動≫ 2.≪プリンタドライバの再インストール≫ 3.≪オフラインかどうか≫ これはとりあえず全部ダメでした。 で、IP2600→右クリック→プロパティを見ていたら【ポート】という項目が目に入ってきました。 で、このポートの部分に、どのポートとどのプリンタが繋がっているかが書いてありました。 IP2600のポートを見てみると【USB002】と書かれていました。 そしてもう一つは【IP192.*****】と書いてあります。 早速調べてみました。 【USB】と書かれているのは、その名の通り直接パソコンとプリンタが繋がって印刷する状態だそうです。 そこで私は初めて ○ローカルプリンタ ○ネットワークプリンタ という言葉を知りました。 元々最初はパソコンに繋げてプリントしていたのでIP2600のポート部分はUSBになっていて当然。つまり、ローカル、ってことですよね? で、ここで質問なのですが、 1.プリントできない理由はポートだけですか? 2.ポートだけでないとしたら何が考えられるでしょうか 3.そして、そのポートは自作できるのでしょうか、それとも 勝手にパソコンが割り振るのでしょうか パソコンが全然ダメで、周りにWindowsの人がいないものですから 途方に暮れています… お願いします。

  • Win標準ネットワークポートで利用できるお勧めネットワークプリンタを教えてください

    WindowsXPクライアントの環境でネットワークプリンタ の導入を検討しています。 そこで掲題のプリンタを探しているのですが 以下の要件に合うプリンタをご存知でしたら 教えていただけると助かります。 優先度順 ・Win標準(Standerd TCP/IP port)で利用できる →USBプリンタサーバ等を利用すると、 独自のポート管理ソフトを入れる必要がある ことが多い。 ・モノクロレーザー ・値段が安い よろしくお願いします。

  • プリンターポートの出し方について

    WIN2000につながっているプリンター(HP1120C)を他WIN2000とXPで共有したいのですが、 直接つながっているPCの設定で共有にしてセキュリティーの欄でも全く凝った設定等してないのですが、なぜが他の2000やXPから印刷しようとするとポートがきちんと取れてないようなんです。 WIN2000のヘルプのページでのポートの取り出し方をしても出来ないのですが、、どうしたらきちんと認識してくれるでしょうか? ファイルの共有は問題なく出来るのですが,,, 宜しくお願いします。

  • ネットワークプリンタについて

    社内でWIN200Proが数台あります。そのうちの一台が、ネットワークプリンターが急に使えなくなりました。(数台あるWIN200Proのうち一台だけ) 恐らく、インターネットにもつながらないのでTCP/IPがだめっぽいです。ただ、ワークグループから他のPCなどを覗けているのでその他は異常がなさそうです。 プリンターはCanon LBP-2260PSです。 環境は有線LANでPC-ハブ-プリンターといった感じです。 よろしくお願いいたします。

専門家に質問してみよう