اگر دفتر خود را با استفاده از اکسل خودکار می کنید، ممکن است تعجب کنید که آیا راهی برای چاپ خودکار محتویات یک محدوده سلولی در یک زمان معین در روز وجود دارد یا خیر. به عنوان مثال، ممکن است یک ورک بوک داشته باشید که همیشه باز است و ورودی های یک برنامه دیگر را ثبت می کند. در یک زمان خاص هر روز ممکن است بخواهید به طور خودکار محدوده ای را چاپ کنید که حاوی اطلاعات خلاصه است.
چند روش وجود دارد که می توانید برای این مشکل استفاده کنید، از جمله استفاده از Windows Scripting برای مدیریت چاپ. با این حال، از آنجایی که ورک بوک همیشه باز است، مجبور نیستید به آن متوسل شوید. در عوض، می توانید به قابلیت های ماکرو بومی اکسل تکیه کنید.
راه حل در نظر گرفته شده در اینجا به دو ماکرو نیاز دارد. اولین موردی است که در اولین باز شدن ورک بوک اجرا می شود. کنترل کننده رویداد صحیح را برای راه اندازی ماکرو واقعی که چاپ را انجام می دهد تنظیم می کند.
Private Sub Workbook_Open()
Schedule the printing
Application.OnTime TimeValue("17:00:00"), "PrintMe"
End Sub
این ماکرو خاص روش OnTime را تنظیم می کند تا زمانی که به ساعت 5:00 بعد از ظهر رسید، فعال شود. برای تعیین زمان متفاوت از روز، به سادگی زمان را (با استفاده از نماد 24 ساعته) در ماکرو تغییر دهید. وقتی ساعت 5 بعد از ظهر فرا می رسد، اکسل ماکرو PrintMe را اجرا می کند:
Private Sub PrintMe()
Sheets(2).PrintOut
Reschedule the printing
Application.OnTime TimeValue("17:00:00"), "PrintMe"
End Sub
این ماکرو کاری انجام نمی دهد جز اینکه برگه دوم را در ورک بوک چاپ می کند (که باید حاوی اطلاعات خلاصه ای باشد که می خواهید چاپ شود) و سپس روش OnTime را بازنشانی می کند تا دوباره در ساعت 5 بعد از ظهر روز بعد فعال شود. اگر می خواهید محدوده داده متفاوتی چاپ شود، به سادگی شی مورد استفاده با روش PrintOut را در خط اول ماکرو تغییر دهید.