'Written: November 28, 2009 'Author:  Leith Ross 'Summary: Finds a printer by name and returns the printer name and port number.  Function FindPrinter(ByVal PrinterName As String) As String   'This works with Windows 2000 and up     Dim Arr As Variant   Dim Device As Variant   Dim Devices As Variant   Dim Printer As String   Dim RegObj As Object   Dim RegValue As String   Const HKEY_CURRENT_USER = &H80000001             Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")     RegObj.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Devices, Arr            For Each Device In Devices         RegObj.getstringvalue HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Device, RegValue         Printer = Device & " on " & Split(RegValue, ",")(1)         If InStr(1, Printer, PrinterName, vbTextCompare) > 0 Then    ...