Public Function HavePrint() As Boolean
    HavePrint = False
    Dim X As Printer
    Dim i As Integer
    i = 0
    For Each X In Printers
       If X.Orientation = vbPRORPortrait Then
          '设定为系统缺省打印机。
          Set Printer = X
          i = i + 1
          ' 终止查找打印机。
          Exit For
       End If
    Next
    If i <> 0 Then
        HavePrint = True
    End If
End Function

解决方案 »

  1.   

    If Printers.Count = 0 Then
        MsgBox "没有安装打印机!"
    End If
      

  2.   

    '是否存在打印机,存在返回TRUE,不存在返回FALSE
    Public Function ExistPrinter() As Boolean   
        On Error GoTo Ert
        Dim i As Integer
        i = Printer.ScaleMode
        ExistPrinter = True
        Exit Function
    Ert:
        ExistPrinter = False
        Exit Function
    End Function
      

  3.   

    '例子
    if ExistPrinter then
         msgbox "已经安装了打印机"
    else
         msgbox "系统没有安装打印机"
    end if
      

  4.   

    哪值得这么麻烦啊?
    printers本来就是VB自带的一个object
    可以直接判断的。并且还可以通过printers得到各打印机的名称
    for n=0 to printers.count-1
        combo1.additem printers(n)
    next n