Shaune یک ماکرو نوشته است که برگه های اطلاعات محصول را در یک PDF writer چاپ می کند. هنگامی که ماکرو در PDF writer چاپ میکند، ماکرو چاپگر پیشفرض را برای سیستمی که در آن اجرا میشود، بازنشانی میکند، به طوری که وقتی شخصی سعی میکند به طور منظم چاپ کند (پس از اتمام ماکرو)، Word همچنان فرض میکند که کاربر میخواهد در آن چاپ کند. PDF نویس. Shaune به دنبال راهی برای ماکرو خود برای استفاده موقت از PDF writer بدون تنظیم مجدد چاپگر پیش فرض است.
خبر بد، Shaune، این است که شما نمی توانید از تنظیم مجدد چاپگر جلوگیری کنید. هنگامی که ویژگی ActivePrinter را بازنشانی میکنید، سپس Word فرض میکند که چاپگری که مشخص کردهاید، چاپگر فعال (پیشفرض) باقی میماند تا زمانی که بهطور خاص آن را بازنشانی کنید.
خبر خوب این است که شما همچنین می توانید ویژگی ActivePrinter را بخوانید، به این معنی که ماکرو شما می تواند هر چاپگری را که شخص قبل از اجرای ماکرو انتخاب کرده بود ذخیره کند و سپس ویژگی ActivePrinter را قبل از خروج مجدداً تنظیم کند. نتیجه این است که کاربر هرگز متوجه نمیشود که چاپگر پیشفرض تغییر کرده است، زیرا ماکرو شما تنظیمات را حس کرده و سپس آن را تغییر داده است. این تکنیک به این صورت استفاده می شود:
Sub PrinterTechnique()
Dim sCurrentPrinter as String
Dim sPDFwriter as String
" perform whatever tasks need to be done prior to printing
" make sure you also initialize the sPDFwriter string with
" the name of your PDF writer
" save current printer name, then change to PDF writer
sCurrentPrinter = Application.ActivePrinter
Application.ActivePrinter = sPDFwriter
" print document, then go back to the original printer
ActiveDocument.PrintOut
Application.ActivePrinter = sCurrentPrinter
" continue with the rest of your macro
End Sub
توجه داشته باشید، در این مثال، چاپگر فعال ابتدا در متغیر sCurrentPrinter ذخیره می شود و سپس چاپگر فعال روی هر چیزی که در متغیر sPDFwriter است تنظیم می شود. (همانطور که اشاره شد، شما باید sPDFwriter را مقداردهی اولیه کنید تا حاوی یک نام چاپگر معتبر باشد.) پس از اتمام چاپ، چاپگر فعال به چیزی که قبلاً در متغیر sCurrentPrinter ذخیره کرده بودید برمی گردد.