『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
'---------------------------------------
正直、そのものずばりがあるかと思ったが…
もしかしたら見つけてないだけかも…。
取り敢えずは、これで良しとしよう!
| 固定リンク
コメント