通常使うプリンタにしていないプリンタを一時的に通常使うプリンタにして出力するようにしたいのですが、
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権限でログインしています。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> VB5だからだめなのかな?



Service Packで修正されたそうです。

参考URL:http://www.microsoft.com/JAPAN/support/kb/articl …
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/21 20:25

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

参考URL:http://www.vbvbvb.com/cgi-bin/namazu.cgi?query=% …
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/19 22:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング