Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ
VBAでプリンタ一覧の取得するには2種類の方法があります。 WMIオブジェクトのExecQueryメソッドを使う方法と、win.NameSpace(4)を使う方法です。 どちらの方法も滅多に使う場面もないので、掲載しているコードをコピーし使用すればいいかと思います。 関連する「Excel VBAでプリンターを切り替える」を掲載しています、参照してください。 |
Excelシート画面
B列はMyGetPrinterA()で列挙しています。
C~E列はMyGetPrinterB()で列挙しています。
C列はプリンタ名
C列は存在するフォルダ名
E列は通常使うプリンタならTRUE、そうでなければFALSEと表示されます。
MyGetPrinterBは、WindowsXPで使用できます。
Excel VBA実行コード
Option Explicit
Private Sub MyGetPrinterB()
Dim lrow As Long
Dim tobj As Object
Dim tInstPrn As Variant
Dim tprn As Object
lrow = 6
Set tobj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set tInstPrn = tobj.ExecQuery("Select * from Win32_Printer")
For Each tprn In tInstPrn
Cells(lrow, 3) = tprn.Name
Cells(lrow, 4) = tprn.Location
Cells(lrow, 5) = tprn.Default
lrow = lrow + 1
Next
End Sub
Private Sub MyGetPrinterA()
Dim win As Object
Dim Obj_Item As Variant
Dim lrow As Long
lrow = 6
Set win = CreateObject("Shell.Application")
For Each Obj_Item In win.NameSpace(4).Items
Cells(lrow, 2) = Obj_Item.Name
lrow = lrow + 1
Next
End Sub
Private Sub CommandButton1_Click()
MyGetPrinterA
MyGetPrinterB
End Sub
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します