Molte delle stampanti disponibili oggigiorno sul mercato hanno capacità sorprendenti. La maggior parte di queste funzionalità sono accessibili visualizzando la finestra di dialogo Proprietà della stampante. Mentre sviluppi le tue macro, potresti chiederti se è possibile accedere a queste funzionalità dall’interno della macro.
Sfortunatamente, non sembra che ciò possa essere fatto perché i driver della stampante in genere non rendono disponibili le funzionalità delle stampanti in un modo che possa essere compreso e accessibile dal modello a oggetti utilizzato da VBA. Invece, dovresti utilizzare le API di Windows e, anche in questo caso, non tutte le funzionalità potrebbero essere accessibili.
Tuttavia, è possibile utilizzare alcune soluzioni alternative. È possibile utilizzare VBA per selezionare diverse stampanti a cui indirizzare l’output. Ciò significa che puoi creare diverse definizioni di stampante, in Windows, e quindi utilizzare tali definizioni come destinazione per il tuo output.
Ad esempio, è possibile utilizzare la cartella Stampanti di Windows per configurare una stampante denominata “HP Carta Normale”. Per impostazione predefinita, la definizione della stampante può essere impostata per la stampa su carta normale. È quindi possibile impostare un’altra definizione di stampante denominata “HP Carta lucida” e impostarla per stampare, per impostazione predefinita, su un vassoio che potrebbe contenere carta lucida. Una volta definite le due stampanti, è possibile utilizzare VBA per passare dall’una all’altra. Ad esempio, se desideri stampare sulla definizione della stampante per la carta lucida, puoi utilizzare quanto segue nella macro:
Application.ActivePrinter = "HP Carta lucida"