• ベストアンサー

ExcelVBA アクティブプリンタの書き方

お世話になっております。 ExcelVBAでアクティブプリンタの変更を行うとき、 Excelのバージョンによって、書き方が違うと 聞いています。 Excel97の場合 "Canon BJC-455J on LPT1:" Excel2000の場合 "LPT1: の Canon BJC-455J" とのことですが、 それ以降の版はどのように表記すればよいのでしょうか。 当方、Excel2002を使用しているのですが、 Excel97と同じ形式の書き方のようなのですが、 正しいでしょうか。 また、Excel2003は持っていないのですが、 どのように表記すればよいでしょうか。 以上、ご存知の方がいらっしゃいましたら、 ご回答を宜しくお願い致します。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

各バージョンに対応させたい目的は何なのでしょう? 使うPCによってポート(LPT1:の部分)も変わる可能性がありますし、プリンターそのものも変わると思うのでVBAで強制的に変更する用途が良く解かりませんでした。 ちなみにこちらの環境(Excel2000)では質問例のExcel2000と異なりExcel97と同じ「~ on LPT1:」で表示されましたよ? Sub TestPrinterSet()  Application.Dialogs(xlDialogPrinterSetup).Show  MsgBox Application.ActivePrinter End Sub

o_w_nakazaki
質問者

お礼

回答が遅れて大変申し訳ございません。 自作のアプリでプリンタ、ポートを選択させ、 OLEでexcelのシートを生成した後、 出力先のプリンタを特定するといったことをやりたかったのですが、 プリンタを設定する場合、プリンタ名とポートを つなげた名称を設定しなければならないようで、 それがバージョンによって異なるということだったので 今回、質問した次第です。 結局Excelシートの生成後、 手作業で対応してもらうということでまとまりました。 助言をいただきまして、ありがとうございました。

その他の回答 (1)

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.2

officeのバージョンではなく、 OSのバージョンによって、 プリンターの名前が変わるはずですが。

o_w_nakazaki
質問者

お礼

回答が遅れて大変申し訳ございません。 ご教授をくださいましてありがとうございました。

関連するQ&A