VBA【成功率100%】【プリンター指定】【印刷】する方法を詳しく解説

Excelのマクロで印刷する時に使用する「PrintOut」を使用して
プリンターを指定して印刷する方法を詳しく解説します。

「PrintOut」を使用し、「ActivePrinter」でプリンター名を指定しているのに
指定したプリンターで印刷できない状況で困っていませんか。

ちゃんと「ActivePrinter」を指定したのに、指定したのとは違うプリンターが使用され
イラつきますよね。

私も指定したプリンターで印刷ができなくて困っていました。

ですが、色々とVBAコードを試行錯誤した結果
100%指定したプリンターで印刷できるようになりましたので
その方法を解説したいと思います。

基本的な「PrintOut」の使用方法を知りたい方は、こちらをご覧ください。
「PrintOut」の引数についても解説しています。

◆指定したプリンターで印刷する方法

VBAで指定したプリンターで印刷する方法として
よく紹介されているのは、「Microsoft WMI Scripting」を使用するコードだと思います。

VBAでプリンター名を取得して、それを「ActivePrinter:=”取得したプリンター名 Printer on Ne*”」
のような感じで指定する方法だと思います。

ですが、なぜか、私のパソコンでは、プリンター名を指定しても、できませんでした。

いくら「ActivePrinter」でプリンター名を指定しても、Excel側で設定されている既定のプリンターを
使用され、印刷してしまいます。

そこで次のコードのようにしたら指定したプリンターで印刷できました。

・VBAサンプルコード

Worksheets("Sheet1").PrintOut ActivePrinter:="\\http://192.168.1.210"

「\\」は半角の「¥¥」なので要注意。
上記コードをコピーしたら間違えなくて済みます。

・解説

VBAのサンプルコードをご覧になれば、わかると思いますが
「ActivePrinter」プリンター名ではなく、IPアドレスで指定しています。

サンプルコードのIPアドレスは
私のプリンターのIPアドレスなので、ご自身の環境に合わせて変更してくださいね。

「192.168.1.210」この部分を、ご自身で使用する、プリンターのIPアドレスにしてください。

IPアドレスとは、ネットワーク上の住所みたいなものです。
ネットワーク上の住所と言っても
基本的に、ローカルネットワークだと思いますので
セキュリティ的な事は心配ありません。

そうなってくると、プリンターのIPアドレスってどうやって調べるのか知りたいですよね。

安心してください。

プリンターのIPアドレスの調べ方は、こちらで紹介しています。簡単ですよ。


◆VBA印刷関連おすすめリンク

プリンターを指定して印刷

「PrintToFile」と「PrToFileName」について

シートを指定して印刷

◆まとめ

なぜ、「ActivePrinter」でプリンター名を指定してもできないかは解析していませんが
IPアドレスを指定すれば、できます。

ですので、VBAでプリンターを指定して印刷したい場合は
「PrintOut」を使用し、その引数「ActivePrinter」にプリンターのIPアドレスで指定しましょう。

これを読んでも解決できない方、なにか不明点がある場合は
コメントして頂くか、こちらからお問い合わせしてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です