• 締切済み

EXCEL2007 VBAでのプリンタ切り替えについて

いつもお世話になっております。 EXCELで帳票出力をする場合にプリンタを切り替えて(通常使うプリンタを変更して) 行おうと、いろいろ調べまして下記のようなプログラムを作成して実行しました。 Dim OldPrinter As String OldPrinter = Application.ActivePrinter With CreateObject("WScript.Network") .SetDefaultPrinter "EPSON LP-6100" End With ~~~~印刷処理~~~~ Application.ActivePrinter = OldPrinter WSHによるデフォルトプリンタの切り替えはうまく行くのですが、その後に もともとの通常使うプリンタに戻す処理がうまくいかず、プリンタが切り替わったまま になってしまいます。 いろいろと調べましたが、わかりませんでした。 参考になるサイトなどでも構いませんのでお願いいたします。

みんなの回答

  • 98FAN
  • ベストアンサー率66% (4/6)
回答No.1

サイトはわからなかったんだけど、 試したら上手く切替出来たので、 これじゃだめかな? Dim OldPrinter As String Dim kariPrinter As String Dim mozisuu As Integer kariPrinter = Application.ActivePrinter mozisuu = Len(kariPrinter) - 9 OldPrinter = Left(kariPrinter, mozisuu) CreateObject("WScript.Network").SetDefaultPrinter "EPSON LP-6100" ~~~~印刷処理~~~~ CreateObject("WScript.Network").SetDefaultPrinter OldPrinter OldPrinterの中には『プリンター名 no Ne00:』と 不明な文字列『 no Ne00:』(スペースも入れて半角9文字)が入ってたんで、 その分文字列から除外してみただけなんだけど・・・ で、その不明な文字列に関してはGoogleで検索したら これが引っかかったんで参考までに http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1210564017

papope
質問者

お礼

ご回答ありがとうございます。 ポート名を削除する方法は私も考えたんですが、どのサイトでも Application.ActivePrinter = OldPrinter で変更できると書いてあったので、何か問題がるのか?と思い質問 させていただきました。 確かWordのVBAだと、この方法で変更できたように思います。 不思議です。 お教えいただいた方法で試してみます。 結果がでるまでお時間かかりますが、こちらでご報告いたします。 (できると思いますが)

papope
質問者

補足

結果報告です。 ポート名が9文字とは限らないみたいなので“on”以前をプリンタ名と して取得してやってみました。 できました。 ありがとうごじざいます。

関連するQ&A

専門家に質問してみよう