у меня 2й и 3й способы почему то не заработали.
вот переработала немножко 1й способ (стал похожий на 3й)
Function ActivatePDFprinter()
If Application.ActivePrinter Like "*PDF*" Then ActivatePDFprinter = True: Exit Function
On Error Resume Next: Err.Clear
Set AllPrinters = GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_Printer", , 48)
For Each printer In AllPrinters
n = n + 1: Debug.Print "Принтер №" & n & ": " & printer.Name
If printer.Name Like "*PDF*" Then
Application.ActivePrinter = printer.Name & " (Ne" & Format(n - 1, "00") & ":)"
ActivatePDFprinter = True: Exit For
End If
Next
Debug.Print "Всего принтеров: " & n
Debug.Print Application.ActivePrinter
End Function
вот переработала немножко 1й способ (стал похожий на 3й)
Function ActivatePDFprinter()
If Application.ActivePrinter Like "*PDF*" Then ActivatePDFprinter = True: Exit Function
On Error Resume Next: Err.Clear
Set AllPrinters = GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_Printer", , 48)
For Each printer In AllPrinters
n = n + 1: Debug.Print "Принтер №" & n & ": " & printer.Name
If printer.Name Like "*PDF*" Then
Application.ActivePrinter = printer.Name & " (Ne" & Format(n - 1, "00") & ":)"
ActivatePDFprinter = True: Exit For
End If
Next
Debug.Print "Всего принтеров: " & n
Debug.Print Application.ActivePrinter
End Function