اگر از ماکروها برای چاپ برگه های خود استفاده می کنید، از قبل می دانید که ماکرو می تواند چاپگر واقعی را مشخص کند که خروجی باید به آن ارسال شود. اگر بخواهید سینی کاغذ خاصی را نیز برای استفاده در آن چاپگر مشخص کنید، چه؟ متأسفانه، این یک دریچه چسبناک است. مشکل اینجاست که وقتی روی دکمه Options در کادر محاوره ای Page Setup کلیک می کنید تا تعیین کنید از کدام سینی کاغذ استفاده کنید، آنچه می بینید کاملاً تحت کنترل درایور چاپگر شما است نه تحت کنترل اکسل.
این برای شما چه معنایی دارد؟ این بدان معناست که هیچ فرمانی وجود ندارد که بتوانید در ماکرو اکسل برای تعیین سینی چاپگر استفاده کنید. با این حال، راهحلهایی وجود دارد که میتوانید امتحان کنید. اولین راه حل این است که به سادگی تعاریف چاپگر مختلف را در ویندوز تعریف کنید، که هر کدام برای استفاده از یک سینی چاپگر خاص طراحی شده اند. این مراحل کلی را دنبال کنید:
- تعیین کنید که چه تعداد سینی کاغذ می خواهید در چاپگر استفاده کنید.
- برای هر سینی کاغذی که می خواهید استفاده کنید، یک چاپگر جدید تعریف کنید. به عنوان مثال، اگر می خواهید از سه سینی کاغذ مختلف استفاده کنید، باید سه چاپگر را تعریف کنید که نام هر کدام نماینده یک سینی کاغذ است.
- بر روی تعریف چاپگر کلیک راست کرده و ویژگی های چاپگر را تغییر دهید تا در سینی کاغذ مورد نظر چاپ شود.
- مرحله 3 را برای هر یک از تعاریف چاپگر دیگر تکرار کنید، مطمئن شوید که سینی های کاغذ متفاوتی را برای هر کدام مشخص کرده اید.
در این مرحله شما چندین تعریف چاپگر را تنظیم کرده اید و هر کدام در یک سینی کاغذ متفاوت در همان چاپگر چاپ می کنند. در اکسل می توانید چاپگر مورد نظر را به صورت ماکرو مشخص کنید، به طوری که چاپ به تعریف چاپگر مورد نظر و از این رو به سینی کاغذ مورد نظر برود. البته تنها ایراد این راه حل این است که کمی کار راه اندازی را می طلبد. اگر در دفتری با 50 کاربر کار می کنید، این بدان معناست که باید مطمئن شوید که هر 50 پرینتر همانطور که در بالا توضیح داده شد تعریف شده است.
راه حل دیگر شامل استفاده از دستور SendKeys در ماکرو است. شما میتوانید اطلاعات مربوط به SendKeys را در راهنمای آنلاین VBA که با اکسل در دسترس است، بیابید، اما کاری که اساسا انجام میدهد این است که بافر صفحهکلید را با یک سری از کلیدها پر میکند، درست همانطور که کاربر تایپ میکند. بنابراین، از نظر تئوری میتوانید ماکرو را طوری تنظیم کنید که فشار کلیدهایی را که برای باز کردن کادر گفتگوی Page Setup دنبال میکنید، شبیهسازی کند، روی گزینهها کلیک کنید و سینی چاپگر دیگری را انتخاب کنید.
با این حال، یک مشکل بالقوه با SendKeys وجود دارد، و این یک مشکل بزرگ است. میتواند غیرقابل اعتماد باشد زیرا هیچ راهی برای اطمینان از اینکه ضربههای کلید واقعاً در جایی که میخواهید انجام میشوند وجود ندارد. در یک سیستم عامل چند رشته ای (مانند ویندوز)، فرآیند دیگری می تواند مداخله کند و دستورات را از مسیر خارج کند. علاوه بر این، اگر SendKeys روی رایانه شما کار میکند، ممکن است روی رایانه دیگری کار نکند، مگر اینکه نسخه اکسل، چاپگر مشابه و نسخه درایور چاپگر مشابهی داشته باشد.