VBA - Definindo a Impressora

VBA - Definindo a Impressora


Alguns dos nossos relatórios, listas, tabelas, textos, comentários podem ser dirigidos diretamente para algumas impressoras, sem que necessariamente sejam úteis, legíveis ou apropriados.

Podemos definir a impressão de certos relatórios por usuário, impedindo que a impressão ocorra numa impressora colorida por exemplo.

Talvez queira enviar certos relatórios diretamente para uma impressora instalada como driver conversor de PDF. Mas como?

Sub PrintToPDF()
        Dim originalPrinter

        'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Application.ActivePrinter

        Let originalPrinter = Application.ActivePrinter

        'Application.ActivePrinter = "CutePDF Writer on SERV2:"
        'ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:='"CutePDF Writer on SERV2:",                 Collate:=True

        ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="CutePDF Writer on SERV2:",                 Collate:=True

        'Let folder = Environ("Temp")

        Let  Filename = Sheet2.Cells(30, 15).Value & ".pdf"
        Let folder = Environ("Temp")
        Let newHour = Hour(Now())
        Let newMinute = Minute(Now())
        Let newSecond = Second(Now()) + 1
        Let waitTime = TimeSerial(newHour, newMinute, newSecond)

        Application.Wait waitTime

        SendKeys Filename

        'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Application.ActivePrinter

        Let  Application.ActivePrinter = originalPrinter

        'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Application.ActivePrinter
End Sub

Mas talvez deseje que o usuário escolha a impressora a usar:

        Let nOpt = Application.Dialogs(xlDialogPrinterSetup).Show

        If nOpt = True Then   
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        Else
            Exit Sub
        End If

Nenhum comentário:

Postar um comentário

diHITT - Notícias