改变 Windows 预设的打印机
Set Printer = Printers(0) ' 将预设打印机设定成第一种打印机
Set Printer = Printers(1) ' 将预设打印机设定成第二种打印机

解决方案 »

  1.   

    也可以使用Api
    1. API 的声明:
    Const HWND_BROADCAST = &HFFFF&
    Const WM_WININICHANGE = &H1A
    Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
    Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    注:如果以上的声明放在「一般模块」底下, 应在 Const 之前加上 Public 保留字, 并且将 Private 保留字去掉。
    2. 程序范例:
    PrinterName = "您想设定的打印机名称"
    Dim S As String, length As Long, hKey As Long
    S = String(80, Chr(0))
    length = GetProfileString("devices", PrinterName, "", S, Len(S))
    S = Left(S, length)
    Call WriteProfileString("windows", "device", PrinterName & "," & S)如你可以:
    PrinterName = "FinePrint pdfFactory Pro"