以下代码写到模块中去。
Public Function RPrinList(Optional ByRef 默认打印机) As String '返回所有联机的打印机
Dim Str As String, i As Integer
If Printers.Count < 1 Then Exit Function '没有打印机
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colPrinters = objWMI.ExecQuery("Select * from Win32_Printer")
For Each objx In colPrinters
If objx.Default = True Then ‘默认打印机
If (Int(objx.Attributes / 256)) Mod 2 = 0 Then ' 检查是否保留打印的文档,保留则为否,未保留则为是
MsgBox "当前默认的打印机为“" & objx.Name & "”,“保留打印的文档”目前未设置" '此处可以改为你的过程
End If
End If
Next
End Function