« 『バーガーキング』の『黒NINJA』を食ってみた。 | トップページ | 『やわらか歯間ブラシ』を買ってみた。 »

2013年11月 5日 (火)

『EXCEL』の『VBA』で使用可能なデバイス名を求めるには…

チョットVBAで印刷を行うことに…

『PrintOut』を使えば、良いのだが
途中、プリントアウト先を変更したい。

この時に問題になるのが、変更する出力先。

変更先の名前は、事前に知っていなければならないのだが…
簡単に調べる方法が無い…。

しかも、名前を間違えるとエラーが発生するし…
どうやって調べれば…。

『コントロールパネル』の『デバイスとプリンター』で見てみる。

表示されている順番は、名前順にソートされて表示されているので
VBAでの番号と異なる。

VBAで使用するのは、OSへのデバイスの登録順らしい。

で、散々調べてみたら…
こんなやり方に落ち着いた。

'---------------------------------------
' 使用可能なデバイス名を列挙する
Private Sub DeviceListGet_Click()

    Dim printer_object As Object
    Dim io_no As Integer
    Dim row As Integer

    ' セルのクリア
    Range("A1:A10").value = Null

    ' リストの作成
    io_no = 0
    row = 36
    For Each printer_object In
        GetObject("winmgmts:").InstancesOf("Win32_Printer")
        Cells(row + io_no, 2) = printer_object.name & " on Ne0" & io_no & ":
        io_no = io_no + 1
        If io_no >= 10 Then
            MsgBox ("デバイス数が10を超えました、表示されないデバイスがあ _
            ります。目的のデバイスがリストに表示されていない場合、使用しないデバイスを削 _
            除して再度検索してください。")
            Exit For
        End If
    Next

End Sub
'---------------------------------------

正直、そのものずばりがあるかと思ったが…
もしかしたら見つけてないだけかも…。

取り敢えずは、これで良しとしよう!

|

« 『バーガーキング』の『黒NINJA』を食ってみた。 | トップページ | 『やわらか歯間ブラシ』を買ってみた。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 『EXCEL』の『VBA』で使用可能なデバイス名を求めるには…:

« 『バーガーキング』の『黒NINJA』を食ってみた。 | トップページ | 『やわらか歯間ブラシ』を買ってみた。 »