• ベストアンサー

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

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

noname#160862
noname#160862

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

#1 さんの Printer型は、Excelにはないはずですね。 >Dim p As Printer API の EnumPrintersで、取ればよいと思います。 他人のコードを丸写しをしたくないので、Google で検索してみてください。 私も作ったことがありますが、時々、他人のコードがOS依存で違う場合がありますので、十分に注意してください。

noname#160862
質問者

お礼

ありがとうございます。 早速、調べてみると似たよう状況の方が多く、とても参考になりました。 これで再度チャレンジしてみます。 早急な回答、感謝します。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

ヒント Private Sub Form_Click() Dim p As Printer For Each p In Printers Debug.Print p.DeviceName Next End Sub

noname#160862
質問者

お礼

早急な対応ありがとうございます。 マクロ等のVBAについては、限りなく素人に近いため回答の構文が良く理解できません。(スミマセン) 実際に特定の端末1台で使えたもを記述しておきます。 これがLAN上の他の端末では、プリンター名の「on」以下が端末ごとで違います。 何か良い方法があれば伝授してください。 よろしくお願いします。 Private Sub CommandButton1_Click() Range("A1:BF55").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$BF$55" Application.ActivePrinter = "LBP1450-A on Ne00:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ "LBP1420-A on Ne00:", Collate:=True Range("A56:BF82").Select ActiveSheet.PageSetup.PrintArea = "$A$56:$BF$82" Application.ActivePrinter = "LBP1420-B on Ne02:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ "LBP1420-B on Ne02:", Collate:=True End Sub

関連するQ&A

  • ネットワークプリンタ

    こんにちは。 会社のネットワークプリンタが固定IPで設定されています。 DHCPサーバーが存在し、ネットワークプリンタへのポートはホスト名で作っているのですが、やはりネットワークプリンタは固定IPの方がいいのですか? 教えてください。よろしくお願いします。

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

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

  • ネットワーク上のプリンタ名を取得

    VB6で開発しています。 ネットワークプリンタの名称を取得する良い方法があれば教えて頂けますか。 CommonDialogやSHBrowsForFolderを使用すればネットワークプリンタの「共有名」は取得できるのですが、取得したいのはそれではなくて「サーバー上から見た場合のプリンタ名そのもの」なのです。 例えばあるサーバー上に共有プリンタAが存在するとします。 このプリンタは プリンタ名 :プリンタA 共有名   :printer という風になっています。 同ネットワーク内に存在するクライアント1からこのプリンターを参照しようとした場合、エクスプローラーや、あるいは上記のSHBrowsForFolderを使用した簡単なアプリケーションでは「\\サーバー名\printer」という値が返ってきます。 でも「プリンタの追加ウィザード」でネットワークプリンタをインストールしようとするとちゃんと「プリンタA」と表示されます。 この「プリンタA」という情報が欲しいのです。 何かよい方法がありましたら教えて下さい。 宜しくお願いします。

  • ネットワークプリンタが繋げない

    会社でサーバー(WinNT)を通してプリンタを共有しています。 今度もう一台プリンタ(EPSON PW7000)を繋ぐことになりました。 プリンタにはIPアドレスをつけ、 サーバーにドライバをインストールし、プリンタ追加もできたんですが、繋げないんです。(共有もしました) 原因はポートが"ローカルのままだから"みたいです… ポートにパスを入れようとしてるんですが(\\パソコン名)入れません。 ちなみにパソコン名が悪いのかと思いプリンタのアドレス入れたんですが、「パスを入れてください」とエラーがでます。 で、原因を突き止めようと思い、PINGを売ったんですが、"unreachable"になりました。 どうしたら良いのでしょうか? お願いします。

  • ネットワークプリンターが使用できたり、できなかったり。

    教えて下さい。 ネットワークプリンター(NEC-PRL-2860N)を使用しています。(固定IPアドレス付番) ネットワーク環境下(ハブ使用)にサーバー-PC- プリンタ-という設定です。 各PCのIPアドレスは、ネットワークが2回線設定で 1つはPCボードから(固定IP)、もうひとつは カードボードから(自動取得)です。 PCは、WIN98SE6台、WINXP2台で そのうちのWINXPのPCからプリンター接続が 出来たり出来なかったりしています。 接続不良のPCからサーバーと隣にあるPC(WIN98SE)へはPINGを認識します。 (プリンターに接続できない状態の如何を問わず。) しかし、接続不能状態時にはその他のPCへはPINGを 認識しません。 一応、不良PCのドライバーもDLして入替は試みましたがダメでした。 何が要因なのかわかりません。 現在、不良PCからPINGを認識する隣のPCの プリンターを共有する方法で印刷をしていますが。 何か対処方法があるのでしょうか? 教示、お願い致します。

  • ネットワークプリンタにする方法

    いつもお世話になっております。 プリンタを購入し、ネットワークプリンタに設定をしようとしたのですが、ローカルIPが割り当てることが出来ません。 プリンタ・・CANON LBP3930 ルーター・・CISCO1720 ルーターはDHCPも兼ねています。 状況 ルーターにHUBをかませ、そのHUBとプリンタをLANケーブルで接続しました。 プリンタの電源を入れれば勝手にIPを割り当てられると思ったのですが セグメント内の使用されているIPを調べるツールでみたらプリンタは出て来ませんでした。 もちろん、別PCを接続したらちゃんとIPを割り当てられていました。 気になるのが、最初業者の方にIPをどこを使うのか聞かれ、答えたところ、LANケーブルがその時なかったため、教えたIPとサブネットを入力して帰っていきました(なぜかデフォゲーは設定していませんでした) マニュアルを参考にしながらIPを自動取得に設定してやりましたがだめでした(自動取得を選択しているので固定IPは無視されるはず) どうしたらIPを割り当ててもらえるのでしょうか。 ご教授お願い致します。

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

    前回こちらで質問しましたが、やはり解決しないままなので、もう一度質問いたします。 小規模なオフィスで、4台のノートPCをLANでネットワークを組んでいます。2台は無線LAN,2台はLANケーブルで接続していて、ファイルは共有できます。 プリンタも共有したいのですが、プリンタの「共有」を開き、 「共有」タブで、「このプリンタを共有する」に●を入れ、「ポート」のところでは共有したいプリンタ名のポートにチェックは入っています。 しかしそれでも、直接接続されているパソコン以外のパソコンからは印刷できません。 この設定が間違ってないとしたら、何が原因と考えられますでしょうか? よろしくお願い致します。

  • 2台のプリンターのネットワーク化

    今部屋でネットワークの構築を考えています。 状況としてWinXPが4台(ノート3台)、MAC2台 このパソコンの台数は増えることもあります。 プリンタは1台はインクジェットA3ノビプリンタ(メインで使用)    もう1台はレーザープリンタ LP-9800 それに 1、無線ルータ 2、LANの8ポートハブ 3、外付けHDD・LANタイプ(プリントサーバー機能付き) を買う予定です。 そこで本題です。 指定のパソコンを起動しないと印刷ができないやりかたはなしとします。 プリンタのメインの1台はルータ→外付けHDD→USBで接続しようと考えています。 あとの1台はどこにつなげるのが良いでしょうか? ルータにつなげる場合、LANからUSBに変換する物があるのでしょうか?やはり、プリントサーバーを買うべきなのでしょうか? また、他にも2台のプリンターの有効な利用法があれば教えてください。

  • ネットワークプリンタを認識できません

    会社で使用するPCとプリンタを新しく買い替えました。 プリンタはエプソンLP-8900です。 このプリンタを同フロアの5台のPCで利用したいのですが、うまくいきません。 5台のPCはそれぞれ社内LANでつながっています。 新しく買った“PC-1(WinXP)”とプリンタをつなぎ、ローカルプリンタで共有の設定をしたのですが、他の4台のPCからプリンタを認識できません。“PC-1(WinXP)”がネットワーク上にあることまでは確認できるのですが、プリンタの認識ができないのです。 そこで“PC-2(WinXP)”とプリンタを接続すると“PC-1(WinXP)”と他1台のPC(XP)は認識でき問題なく使用できるのですが、“PC-3(Win2000)”と“PC-4(Win98)”からはやはり認識でないようなのです。 OSがWinXPでないことが原因なのでしょうか? それとも何か他に原因があるのでしたら、どうすれば解決できるでしょうか?

  • ファイル、プリンタの共有方法

    WinXpの端末2台をルータを通して、「ファイル共有」+「プリンタ共有」させたいと思っております。 【ネットワーク環境】 ・端末1は有線で「ルータ」と「プリンタ」に接続されており、端末2 は無線で接続されています。(1台のプリンタを有線で共有) 【共有条件】 ・端末1を「ファイルサーバ」+「プリンタサーバ」とし、端末2をクラ イアントとしたい。 ・端末2からルータを通して端末1のファイルの観覧をできるようにし たい。 ・端末2から無線でプリントアウトしたい。 ※サーバとクライアントの両方の設定方法を教えていただけたら幸いで す。 以上、分かりづらい説明かとは思いますがよろしくお願いいたします。

専門家に質問してみよう