برخی از برنامه ها، بر اساس سند به سند، آخرین بار از چه چاپگری در هنگام کار با آن سند استفاده کرده اید، به یاد می آورند. به عنوان مثال، InDesign و QuarkXPress به خاطر می آورند که از چه چاپگری برای چاپ هر سند استفاده شده است. اگر از یک سند به سند دیگر جابجا شوید، چاپگر تعیین شده برای چاپ آن سند نیز تغییر خواهد کرد.
Word متاسفانه چنین قابلیتی را ندارد. در عوض، Word چاپگرها را به صورت جلسه به جلسه پیگیری می کند. به عبارت دیگر، هنگامی که Word را راه اندازی می کنید، با فرض اینکه می خواهید در چاپگر پیش فرض ویندوز خود چاپ کنید، شروع به کار می کند. اگر بعداً به چاپگر دیگری تغییر دهید، آن چاپگر انتخابی باقی می ماند تا زمانی که به طور خاص تغییراتی را ایجاد کنید. هنگامی که جلسه Word خود را ترک می کنید و بعداً دوباره راه اندازی می کنید، چاپگر انتخاب شده دوباره به چاپگر پیش فرض برمی گردد.
راه های مختلفی وجود دارد که می توانید این نقص را برطرف کنید. یکی این است که دکمه های مختلف چاپگر سفارشی را تعریف کنید (یکی برای هر یک از چاپگرهای خود) و سپس به سادگی از آنها برای چاپ اسناد مختلف، به دلخواه استفاده کنید. اگر میخواهید Word یادآوری چاپگر مورد استفاده را انجام دهد، تنها گزینه شما ایجاد یک ماکرو است که این کار را برای شما انجام دهد. با این حال، این رویکرد یک رویکرد پیش پا افتاده نیست. به همین دلیل، تعادل این نکته به جای ارائه کد ماکرو واقعی، تنها به کلیات نوشتن چنین ماکرویی می پردازد.
یک راه ساده برای پیاده سازی چنین سیستم کلان این است که یک ویژگی سند سفارشی خاص را تعریف کنید و سپس از محتویات آن ویژگی برای ذخیره نام چاپگری که آخرین بار برای سند استفاده شده است استفاده کنید. ویژگی سند را می توان با استفاده از ماکرو AutoClose تنظیم کرد که هر زمان که یک سند را ببندید فراخوانی می شود.
هنگامی که ویژگی سند سفارشی تنظیم شد، یک ماکرو می تواند مقدار را بخواند و هر زمان که برای چاپ آماده باشید، چاپگر را بازنشانی کند. اگر ویژگی سند تنظیم نشده باشد یا اگر روی چاپگری تنظیم شده باشد که در دسترس نیست، می تواند به سادگی از چاپگر پیش فرض ویندوز استفاده کند.
ترفند در همه اینها، البته، این است که تعیین کنید ماکرویی که سوئیچینگ چاپگر را انجام می دهد چه زمانی باید اجرا شود. میتوان آن را در یکی از ماکروهای خودکار (مانند AutoOpen) قرار داد، اما این مشکل را به طور کامل حل نمیکند. به عنوان مثال، اگر دو سند را همزمان باز کنید، چاپگر روی چاپگری که در آخرین سندی که باز کرده اید تنظیم می شود.
یک راه حل مفیدتر ممکن است استفاده از ماکروها برای تعریف مجدد دستور چاپ مورد استفاده در Word باشد. هنگامی که شما چاپ سند خود را انتخاب می کنید، ماکرو کادر محاوره ای استاندارد چاپ را نشان می دهد، اما چاپگر انتخاب شده به هر چاپگری که در ویژگی سند سفارشی ذخیره می شود تغییر می کند. نقطه ضعف این روش همان قدرت اولیه است - این که چاپگر تا زمانی که واقعاً چاپ نشود تغییر نمی کند. Word برای کنترل صفحه نمایش WYSIWYG خود به درایور چاپگر انتخاب شده متکی است. به عبارت دیگر، درایور چاپگر انتخاب شده نحوه نمایش اطلاعات روی صفحه را کنترل می کند. اگر درایور چاپگر درست قبل از چاپ تغییر کند، ممکن است آنچه چاپ شده با آنچه روی صفحه نمایش داده می شود مطابقت نداشته باشد.
بهترین راه حل این است که ماکرو تنظیم چاپگر را به رویدادی متصل کنید که هر زمان که یک سند فوکوس پیدا کرد (زمانی که سند انتخاب شد) فعال می شود. متأسفانه، چنین رویدادی برای اشیاء سند در VBA وجود ندارد. (که بسیار کنجکاو است زیرا چنین شی ای در پیاده سازی VBA اکسل وجود دارد.)
نتیجه همه اینها این است که یک راه حل کامل مستلزم تغییر چندین دستور مختلف داخلی Word است. کدوم دستورات این واقعا به نحوه استفاده شما از Word بستگی دارد. برای مثال، اگر معمولاً قبل از چاپ به پیشنمایش چاپ نگاه میکنید، میخواهید دستور چاپ پیشنمایش را طوری تغییر دهید که درایور چاپگر را تغییر دهد. آیا دستور Print را مستقیماً از صفحه پیش نمایش چاپ انتخاب می کنید؟ اگر چنین است، پس باید تغییراتی در آن دستور ایجاد کنید.