2017-01-23 1 views
0

アクティブなプリンタをすべて一覧表示するコードがあります(リストではなくmsgboxで表示されます)。私はその機能に問題はありません。ここでは以下のコードは次のとおりです。特定の名前のプリンタを表示する

If Printers.Count > 0 Then 
    strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf 
    For Each prtLoop In Application.Printers 
     With prtLoop 
      MsgBox .DeviceName     
     End With 
    Next prtLoop 
    Else 
    MsgBox "No printers are installed." 
    End If 

それは私が唯一のポップアップにそれを希望私は基本的にそれを行うために必要なものをしていますがもしコードに設定されているプリンタ名の部分的に一致するプリンタ。私は3台のプリンタがある場合例:

Printer ABC 1 
Printer ZZ5 2 (copy) 
Printer 123 

を私がもしがあるようにしたいThenステートメントデバイス名は、それがその後、* ABCである場合に、上記のコードの

For Each prtLoop In Application.Printers 

部分は述べていますおそらく後すべて3ではなく「Printer ABC 1」が表示されます。

これは意味があると思います。助けを前にありがとう。 -Vladimir

答えて

1

多分あなたは何をしたいですか?
If Printers.Count > 0 Then strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf For Each prtLoop In Application.Printers With prtLoop If InStr(DeviceName, "ABC") Then MsgBox .DeviceName
End If
End With Next prtLoop Else MsgBox "No printers are installed." End If

編集:エラーは、私が独自の行とそれにMsgBoxに.DeviceNameを動かしアクセスは「場合場合、ブロックせずに終了」が1行は、エラーがを考え出すしたので、その文の場合は好きではなかったです働く

+0

ありがとうございました!これは素晴らしいです。 MsgBox .Devicenameが同じ行にあるため、Accessはエラーをなくしました(ブロックなしで終了する場合)。私はそれを自分の行に移動した後、エラーはなくなり、うまくいきました。 – vladyerus

関連する問題