- ベストアンサー
ExcelVBA アクティブプリンタの書き方
お世話になっております。 ExcelVBAでアクティブプリンタの変更を行うとき、 Excelのバージョンによって、書き方が違うと 聞いています。 Excel97の場合 "Canon BJC-455J on LPT1:" Excel2000の場合 "LPT1: の Canon BJC-455J" とのことですが、 それ以降の版はどのように表記すればよいのでしょうか。 当方、Excel2002を使用しているのですが、 Excel97と同じ形式の書き方のようなのですが、 正しいでしょうか。 また、Excel2003は持っていないのですが、 どのように表記すればよいでしょうか。 以上、ご存知の方がいらっしゃいましたら、 ご回答を宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
各バージョンに対応させたい目的は何なのでしょう? 使うPCによってポート(LPT1:の部分)も変わる可能性がありますし、プリンターそのものも変わると思うのでVBAで強制的に変更する用途が良く解かりませんでした。 ちなみにこちらの環境(Excel2000)では質問例のExcel2000と異なりExcel97と同じ「~ on LPT1:」で表示されましたよ? Sub TestPrinterSet() Application.Dialogs(xlDialogPrinterSetup).Show MsgBox Application.ActivePrinter End Sub
その他の回答 (1)
- kakusuke
- ベストアンサー率36% (95/259)
officeのバージョンではなく、 OSのバージョンによって、 プリンターの名前が変わるはずですが。
お礼
回答が遅れて大変申し訳ございません。 ご教授をくださいましてありがとうございました。
お礼
回答が遅れて大変申し訳ございません。 自作のアプリでプリンタ、ポートを選択させ、 OLEでexcelのシートを生成した後、 出力先のプリンタを特定するといったことをやりたかったのですが、 プリンタを設定する場合、プリンタ名とポートを つなげた名称を設定しなければならないようで、 それがバージョンによって異なるということだったので 今回、質問した次第です。 結局Excelシートの生成後、 手作業で対応してもらうということでまとまりました。 助言をいただきまして、ありがとうございました。