★★★★★★Access2000VBA・Excel2000VBA独学~現在インストールされているすべてのプリンタを調べてから、印刷したいプリンタに切り替え、さらに「選択した複数のシート」を印刷してから、通常使うプリンタに戻すプログラム。Excel2007以前などで「PDF化したいとき」に、フリーウェアなどのPDFプリンタを指定すれば直接PDF化も可能です。~
  
※まだ書きかけです。すみません。
※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。
  
※参考Webページ
6) プリンターを指定する
Excel VBA プリンタを指定して印刷する
  
  
★ はじめに

・プリンタを切り替えて印刷したい、
・複数のシートを一括で印刷したい、
などの要望に応えるプログラムを試作してみました。

Excel2000などの「そもそも PDF保存 できない」バージョンでも使えるように、少し古い書き方で書いてあります。

新しいバージョンのExcelだと、また、OSが異なると、もっと違う書き方になるかもしれません。

また、今回のサンプルは「プリンタを切り替るだけ」でしたので、古いバージョンのやり方でやれましたが、もっと細かい制御をしたいときは、新しいバージョンのExcelの「Printerオブジェクト」?を使わないとダメかもしれません。

  
  
★ 情報の調査について

6) プリンターを指定する

↑内容的には、ちょっと異なりましたが、一応、参考になりました。

Excel VBA プリンタを指定して印刷する

も参考になりました。
  
  
◎プリンタ名の調べ方(Win2000)
→プリンタのプロパティにて、「全般」タブの一番上の内容?
 VBAコードでプリンタを探すときは、大文字小文字が区別されるようなので、
 ここの文字列をまんまでコピペして使う方がいいです。
  
  
◎ポート名の調べ方
→同じくで、「ポート」タブにて、リストの中の「ポート」の列に
表示されている文字列?
それともイミディエイトで「? Application.ActivePrinter」で調べたときの「 ~~ on Ne02:」のような文字列?
  
  
◎ドライバ名の調べ方
→同じくで、「詳細設定」タブにて、「ドライバ」の文字列?
  
  
◎現在のActivePrinterの設定値の調べ方(イミディエイト)
「通常使うプリンタ」に設定してから、イミディエイトにて、
? Application.ActivePrinter
とやります。
プリンタ名だけでなく、「 ~~ on Ne02:」などと付加されて出てくるのですが、逆に設定を(プリンタを)切り替えるには、それが一応、全部必要です。

切り替えたい先のプリンタでも、「通常使うプリンタ」に設定してから、イミディエイトにて、
? Application.ActivePrinter すると分かります。その場合は、その後、もともとのプリンタを「通常使うプリンタ」に設定し戻します。
  
  
◎「PrinOut」メソッドで必要なプリンタ名について
→古いバージョンのExcelだと、前項のプリンタのプロパティにて、「全般」タブの一番上の内容じゃないとダメかも?。後述の「 ~~ on Ne02:」のような文字列が付加していると、エラーになった気がします。でも僕のPCだけかも?
新しいバージョンのExcelや、古いExcelでも何らかの要件を満たせば、「 ~~ on Ne02:」が付いていても大丈夫かも?
もしかしたらOSがWindows10だったからかも?OSがWin2000だとダメなのかも?
よくわかりませんので、必要に応じて、「 ~~ on Ne02:」を取ったり付けたりしてみてください。
すべてのケースで使えるのは、「 ~~ on Ne02:」を取った形のような気がします。
  
  
◎PrinOutメソッドを使う前、あるいは、印刷完了後の「ActivePrinterの設定・切替方法」について
(PrinOutメソッドを使う前の切替、あるいは、切替後+印刷完了後に、元のプリンタに戻したいときなど)
→Application.ActivePrinter = " ~~ on Ne02:"
 とやります。
 「 ~~ on Ne02:」などと付加された部分が必要です。
 単純にプリンタ名だけだとエラーになります。
  
  

なお、Application.ActivePrinter = " ~~ on Ne02:"
とやっても、使うプリンタを変えるだけで「通常使うプリンタの設定」までは変わらないようなので、
安心して大丈夫です。
(もしWordやIEなどを同時に開いていて、COMオートメーションで連携していてもWordやIEのプリンタまでは切り替わらないと思います。)