• ベストアンサー

WINDOWS2000でのプリンタの選択について

通常使うプリンタにしていないプリンタを一時的に通常使うプリンタにして出力するようにしたいのですが、 WINDOWS2000だと、うまくいきません。 プログラム実行前に通常使うプリンタの名前をA、 プログラムを実行すると同じPCに設定されているBのプリンタから出力したいのですが、下記のようにしてみたのですが、 Dim PrinterScale as Single Dim Name as String Dim X As Printer For Each X In Printers If X.DeviceName = B Then Set Printer = X    Name = Printer.DeviceName ・・・・ (1)    PrinterScale = Printer.ScaleWidth    Name = Printer.DeviceName ・・・・ (2) Exit For End If Next 上記の場合、(1)のときNameの文字列はBなのですが、プロパティを参照したりすると(2)の段階でNameがAに戻ってしまうのです。結局実行後プログラム上で指定したプリンタから出力されず、実行前に通常使うプリンタに設定していたプリンタから出力されてしまいます。 だけどこれはOSがWINDOWS2000の時だけで、WIN98やXPのときはプログラム上で指定したプリンタから出力してくれます。WINDOWS2000でプロパティの変更や参照をしても元にもどらない方法があれば教えてください。因みにAdmin権限でログインしています。

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

> VB5だからだめなのかな? Service Packで修正されたそうです。

参考URL:
http://www.microsoft.com/JAPAN/support/kb/articles/J041/2/94.asp
kirara_pika
質問者

お礼

ありがとうございます。 EXEにして実行すると問題なく指定したプリンタから出力されるようです。 動作テスト中の段階でうまく切り替わらなくて違うプリンタから出たんで、ずーっと悩んでました。

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

http://www.vbvbvb.com/jp/gtips/index.html で「通常使うプリンタを設定する」で検索したら、4件見つかりました。

参考URL:
http://www.vbvbvb.com/cgi-bin/namazu.cgi?query=%92%CA%8F%ED%8Eg%82%A4%83v%83%8A%83%93%83%5E%82%F0%90%DD%92%E8%82%B7%82%E
kirara_pika
質問者

お礼

サイトの紹介ありがとうございます。 使ってみましたがやっぱりだめでした。VB5だからだめなのかな?もう一度後日VB6でチャレンジしてみます。

関連するQ&A