Controllo della stampante in una macro

Molte delle stampanti disponibili sul mercato in questi giorni hanno alcune funzionalità sorprendenti. La maggior parte di queste funzionalità sono accessibili tramite la finestra di dialogo Stampa e facendo clic sul pulsante Proprietà accanto al nome della stampante. Come si sta sviluppando le proprie macro, si può chiedere se sia possibile accedere a queste funzionalità all'interno del macro.

Purtroppo, non sembra che questo può essere fatto perché i driver di stampa in genere non fanno le caratteristiche delle stampanti disponibili in un modo che può essere compreso e accessibile dal modello di oggetto usato da VBA. (Boy, era che un boccone!), Invece, si dovrebbe utilizzare l'API di Windows reale, e anche allora non tutte le funzioni potrebbero essere accessibili.

Ci sono alcune soluzioni che possono essere utilizzati, però. È possibile utilizzare VBA per selezionare diverse stampanti a cui è possibile indirizzare l'output. Ciò significa che è possibile creare diverse definizioni-in di stampa per Windows, e quindi utilizzare queste definizioni come destinazione per l'output.

Ad esempio, è possibile utilizzare la cartella Stampanti in Windows per installare una stampante denominata HP Regular Paper. Tale definizione stampante può essere impostata per stampare su carta normale, per impostazione predefinita. È quindi possibile impostare un altro definizione stampante denominata HP carta lucida e impostarlo per la stampa, per impostazione predefinita, ad un vassoio che può contenere carta lucida. Con le due stampanti definite, è possibile utilizzare VBA per passare tra i due. Ad esempio, se si vuole stampare la definizione della stampante per la carta lucida, è possibile utilizzare il seguente nella macro:

Application.ActivePrinter = "HP Glossy Paper"

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (2530) si applica a Microsoft Excel 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia ribbon di Excel (Excel 2007 e versioni successive) qui: Controllo della stampante in una macro.