Definere standardskrivere på et dokument nivå

March 6  by Eliza

Noen programmer huske, på et dokument-by-dokument basis, hva skriver du brukte sist når du arbeider med dette dokumentet. For eksempel, InDesign og Quarkxpress huske hva skriveren ble brukt til å skrive et gitt dokument; hvis du bytter fra et dokument til et annet, skriveren utpekt til å skrive ut dette dokumentet vil også endre seg.

Word, dessverre, ikke har en slik evne. I stedet holder Word spor av skrivere på en session-by-session basis. Med andre ord, når du starter Word, starter det ved å anta at du vil skrive ut til din standardskriver i Windows. Hvis du senere endre til en annen skriver, forblir som skriver valgt til du spesifikt gjøre endringer. Når du avslutter Word-økten, og starte på nytt senere, den valgte skriveren igjen går tilbake til standardskriver.

Det er flere måter du kan omgå dette brist. Det ene er å definere ulike tilpassede skriverknappene (ett for hvert av dine skrivere) og så bare bruke disse til å skrive ut ulike dokumenter, som ønsket. Hvis du vil at Word å gjøre å huske hvor skriveren ble brukt, så det eneste alternativet er å lage en makro som ville gjøre dette for deg. Denne tilnærmingen er imidlertid ikke en triviell en. Av denne grunn, vil balansen av dette tipset diskutere bare de alminnelig for å skrive en slik makro i stedet for å presentere den faktiske makrokode.

En enkel måte å implementere en slik makro system ville være å definere en spesiell tilpasset dokument eiendom, og deretter bruke innholdet i den egenskap for å lagre navnet på skriveren sist brukt for dokumentet. Dokumentet eiendom kan angis ved hjelp av Autoclose makro, som kalles når du lukker et dokument.

Når den tilpassede dokument eiendommen er satt, kan en makro lese verdien og tilbakestille skriveren når du er klar til å skrive ut. Hvis dokumentet eiendommen ikke er satt, eller hvis den er satt til en skriver som ikke er tilgjengelig, så det kan rett og slett bruke standard Windows-skriver.

Trikset i alt dette, selvfølgelig, er å finne ut når det makro som gjør skriveren veksling skal utføres. Det kan være plassert i en av de Auto makroer (for eksempel Autoopen), men det ville ikke helt løse problemet. For eksempel, hvis man åpner to dokumenter på samme tid, at skriveren vil forbli satt til skriveren som er angitt i den siste dokument du åpnet.

En mer nyttig løsning kan være å bare bruke makroer for å redefinere utskriftskommandoen brukes i Word. Når du velger å skrive ut dokumentet, vil makroen presentere standard dialogboksen Skriv ut, men den valgte skriveren ville bli endret til hva skriver lagres i tilpassede dokumentegenskap. Ulempen med denne tilnærmingen er den samme som den første styrke at skriveren ikke blir endret før faktisk utskrift. Word er avhengig av den valgte skriverdriveren for å styre sin WYSIWYG-skjerm. Med andre ord, skriverdriveren valgte styrer hvordan informasjon vises på skjermen. Hvis skriverdriveren endringer like før utskrift, så hva som skrives kanskje ikke samsvarer med hva som vises på skjermen.

Den beste løsningen ville være å knytte skriveren settende makro til en hendelse som sparken når et dokument oppnådd fokus (da dokumentet ble valgt). Dessverre er det ingen slike arrangementer tilgjengelig for dokumentobjekter i VBA. (Som er veldig nysgjerrig siden det er et slikt objekt i Excel implementering av VBA.)

Det endelige utfallet av alt dette er at en komplett løsning vil kreve endring av flere ulike innebygde Word-kommandoer. Hvilke kommandoer? Det er egentlig avhengig av hvordan du bruker Word. For eksempel, hvis du vanligvis ser på forhåndsvisning før utskrift, vil du ønsker å endre Print Preview-kommandoen slik at den endres skriverdriveren. Du velger kommandoen Skriv ut gjør direkte fra forhåndsvisningen? Hvis ja, så må du gjøre endringer i den kommandoen.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (1551) 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: Definere standardskrivere på et dokument nivå.