Midlertidig Endre skriver i en Macro

May 17  by Eliza

Shaune har skrevet en makro som skriver ut, til en PDF forfatter, produktdatablad. Når han skriver til PDF forfatter, tilbakemakrostandardskriver for systemet der den er i gang, slik at når noen prøver deretter å skrive ut regelmessig (etter at makroen er ferdig), Word fremdeles foruts brukeren ønsker å skrive ut på PDF forfatter. Shaune er på utkikk etter en måte for hans makro å bruke PDF-skribent midlertidig, uten å tilbakestille standardskriver.

Den dårlige nyheten, Shaune, er at du ikke kan komme seg rundt tilbakestille skriveren. Når du nullstiller ActivePrinter eiendom, da Word forutsetter at skriveren du spesifisere forblir den aktiv (standard) skriver til deg spesifikt tilbakestille det.

Den gode nyheten er at du også kan lese ActivePrinter eiendom, noe som betyr at makroen kan spare uansett skriver personen hadde valgt før makroen ble kjørt, og deretter tilbakestille ActivePrinter eiendommen før du går ut. Resultatet er at brukeren aldri legger merke til at standardskriver ble endret, fordi makro ante innstillingene og deretter endret det tilbake. Denne teknikken brukes på denne måte:

Sub PrinterTechnique ()
Dim sCurrentPrinter som String
Dim sPDFwriter som String

'Utføre hva oppgaver må gjøres før utskrift
"Sørge for at du også initialisere sPDFwriter streng med
'Navnet på PDF forfatter

'Lagre gjeldende skrivernavnet, og deretter bytte til PDF forfatter
sCurrentPrinter = Application.ActivePrinter
Application.ActivePrinter = sPDFwriter

"Print-dokument, og deretter gå tilbake til den opprinnelige skriveren
ActiveDocument.PrintOut
Application.ActivePrinter = sCurrentPrinter

'Fortsette med resten av makroen

End Sub

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (318) gjelder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Word (Word 2007 og senere) her: Midlertidig Endre skriver i en makro.