• ベストアンサー

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

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

  • youryi
  • お礼率84% (135/160)

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

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 PrintOutメソッドの引数のActivePrinterはポート番号がなくても指定できますので、 印刷時に指定するようにしてはどうでしょうか。 (例) Sheets(1).PrintOut Preview:=True, ActivePrinter:="EPSON LP-XXXX"

youryi
質問者

お礼

ポート番号を指定しなくてもプリンタ名だけで印刷できるようになりました。 ありがとうございます。

関連するQ&A

  • エクセルマクロで教えてください。

    エクセルマクロで、プリンター出力で、困ることが多々発生しています。 どなたか対処法がわかりましたら教えてください。 下記のようにマクロを組んで、印刷させることをしていますが、 最後の「Ne01」がなぜかわからないのですが、よく勝手に変わってしまうのです。 S_PRINT = "RICOH imagio Neo 452 RPCS on Ne01:" とか、 Application.ActivePrinter = "EPSON PM-G4500 on Ne03:" とマクロを組んでます。 そのため、エラーとなったときに、マクロを開き、00から順番に02.03.などを入れ替えております。 エラーとならない方法はないでしょうか?

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

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

  • エクセルマクロ?

    エクセルのマクロでFAXソフトをプリンタドライバとして選んで、FAXした後再び通常のプリンターを 選び印刷するというようにしたのですが、通常のプリンターを他のPC経由で印刷する形をとっており、 その際に、Application.ActivePrinter = "\\パソコンの番号\EPSON on Ne01:"というコードになっているの ですが、この場合のNe01というのは何を表しているのでしょうか? というのは、このNe以下の番号が突然変わりマクロが うまく動かなくなってしまいました。 これは、FAXソフトに起因するのものなのか? それとも、別の理由によるものなのか? 分りづらく申し訳ありませんが、どなたかよろしく お願いします。

  • 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)を取得する方法が ありましたら教えてください! 以上です。よろしくお願い致します。

  • EXCEL マクロに於ける プリンタ番号検索方法

    使用しているデータベースのマクロの中で、 Application.ActivePrinter = "●●●●● on Ne○○○: このような表記があります これらの ● と ○ には、どのような値が入るのでしょう? 多分、●側は登録したプリンター名を記入し、 ○側は登録された割り当ての番号だと思うのですが、 ○側の番号は、どこを見たら分かるのか教えてください よろしくお願いします

  • プリンタ一覧を取得

    社内で複数のプリンタがあります、"複合機""ドットプリンタ""再生紙用プリンタ"などと名前を各クライアントに統一してつけて設定してあります、エクセルのVBAで特定のシートのみ"ドットプリンタ"で印刷するために strAPtr = Application.ActivePrinter で一旦通常のプリンタをバッファリングしておき Application.ActivePrinter = "ドットプリンタ" として印刷をかけ Application.ActivePrinter = strAPtr で戻すということをしたいのですが このドットプリンタがクライアントPCによって ActivePrinter = "ドットプリンタ on Ne02:"になったり ActivePrinter = "ドットプリンタ on Ne00:"になったりクライアントによっては ActivePrinter = "Ne00:のドットプリンタ"になったりして確定できません、 WinAPIを使ってプリンタの一覧の取得・・・という方法がありそうですがエクセルVBAで出来るのでしょうか、願わくばAPIを使わないで実現したいのですが知恵を貸してください

  • ネットワークプリンターをマクロで自動設定

    エクセルのマクロでネットワークに設定されているプリンターを 印字したい。 プリンターは複数台あり、今回はドットプリンターに用紙設定 15×5インチでバック側から帳票を入れて印字したいのですが? Application.activeprinter = "Ne03: の ドット2NEC multilmpact 700xx2" と設定するとNe03:の値がやるごとに変化してしまい、 次回やるとエラーになります。 ドット2NEC multilmpact 700xx2はプリンター名です。 マクロの登録で用紙設定等を設定してもマクロに反映していないので 書き方がわかりません よろしくお願いします。

  • プリンター設定

    プリンター設定を教えて下さい。 Application.ActivePrinter = "AAA on Ne00:" 毎回 No.00 の部分が変わってしまって 初心者な者で、どのように設定していいのかわかりません。 よろしくお願い致します。

  • エクセルでプリンタ指定のマクロ

    エクセルのマクロで、プリンタ指定をするマクロを教えていただけ ないでしょうか。 マクロボタンを押したら、「印刷」ウインドウのプリンタ指定が できるところで止めたいのです。"新しいマクロの記録"でやっても、 当然上記の場所で"記録終了"ができません。 使い方は、様々な部署で同一のエクセルを処理した後、その部署の 環境によって、手差しやカセット、プリンタを選択したいためです。 マクロ初心者です。ご教授よろしくお願いいたします。

  • VBでプリンターを選ぶ

    プリンターが数台あり、用紙によって、プリンターをVBで選ぶことをしていますが、一度OKになったVBが、数日立つとなぜかエラーになってしまいます。プログラムは、オートで作成したのですが下記のようになっております。下記で、[']の命令は、前回はOKであったのですが、本日はエラーになった分です。どなたかどうすればよいか教えてください。 Application.ActivePrinter = _ "\\FMV-DESKPOWER\RICOH imagio Neo 452 RPCS on Ne04:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ "\\FMV-DESKPOWER\RICOH imagio Neo 452 RPCS on Ne04:", Collate:=True 'Application.ActivePrinter = ' "\\FMV-DESKPOWER\RICOH imagio Neo 452 RPCS on Ne03:" 'ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ ' "\\FMV-DESKPOWER\RICOH imagio Neo 452 RPCS on Ne03:", Collate:=True