dポイントプレゼントキャンペーン実施中!

VBAエクセルです。
***********************************************
Sub OSのDefaultPrinterを取得()
Dim プリンタ As Object
Set プリンタ = CreateObject("WScript.Network")

Debug.Print プリンタ.SetDefaultPrinter
End Sub
***********************************************
を実行すると、
(Debug.Print プリンタ.SetDefaultPrinter)の部分で、
引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)
となってしまいます。

どう修正すれば、現在のデフォルトのプリンター名を取得できるのでしょうか?

ちなみに
Sub tset()
Debug.Print ActivePrinter
End Sub
で取得出来る事は知っています。

ご回答よろしくお願いします。

A 回答 (3件)

プリンタの一覧を取得したり、デフォルトプリンタの設定を行うことは出来ても


デフォルトプリンタを取得することは出来ないようです。
海外で貴方と同じようなことを考えた方がいらっしゃいます。
『vbs get default printer』でGoogleりました。
レジストリを見るか、WMIで取得・・。
http://stackoverflow.com/questions/2273458/vbs-g …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/03 23:05

SetDefaultPrinterは、名前の通りデフォルトプリンタを設定するメソッドで、デフォルトプリンタ名を取得するメソッドやプロパティではありません。



WScript.Networkオブジェクトを使ってのデフォルトプリンタ名取得の方法はないですね。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/03 23:04

なぜ、「取得」しようとするのに、「Set~」を使うの?



SetDefaultPrinterメソッドは、通常使うプリンタを「設定」するために使います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/03 23:04

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