[[20200824125301]] 『VBAでリモート接続プリンタの状態を確認したい』(y_nabe) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでリモート接続プリンタの状態を確認したい』(y_nabe)

Excel vbaにて、
ネットワーク接続されている特定のプリンターに印刷指示を行い
スプール出力されたドキュメントが印刷中か、それとも印刷終了
しているかを確認したいのですが、
ご存じの方いらっしゃいましたら、ご教授の程よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


とりあえず、全部羅列する例なぞ。 特定のだけで良いならば、Nameプロパティを見て判断すれば良いでしょう。
 Sub test()
    Dim OBJs As Object
    Dim OBJ As Object
    Dim iR As Long

    Cells.ClearContents
    Range("A1:E1") = Array("プリンタ名", "既定", "オフライン", "ポート名", "状態")

    Set OBJs = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Printer", , 48)

    iR = 1
    For Each OBJ In OBJs
        iR = iR + 1
        With OBJ
            Cells(iR, "A").Value = .Name
            Cells(iR, "B").Value = IIf(.Default, "○", "")
            Cells(iR, "C").Value = IIf(.WorkOffline, "○", "")
            Cells(iR, "D").Value = .PortName
            Cells(iR, "E").Value = .PrinterStatus
        End With
    Next OBJ
 End Sub

印刷中かどうかは、PrinterStatusプロパティで判断できるのではないかと思いますが、一瞬で終わってしまうので、確認してません。
(???) 2020/08/24(月) 13:35


PrinterStatusで判断できました。

???さん、ありがとうございました。
(y_nabe) 2020/08/24(月) 15:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.