وقتی Alastair سندی را چاپ میکند، میخواهد به طور خودکار تاریخ آن سند را به تاریخ چهارشنبه بعد تنظیم کند. برای مثال، اگر امروز پنجشنبه سیزدهم است، Alastair میخواهد چهارشنبه نوزدهم را نمایش دهد، اگر سند اکنون یا در هر روزی تا روز نوزدهم چاپ شده باشد. از پنجشنبه آینده (20) آلستر می خواهد تاریخ چاپ بیست و ششم باشد و غیره.
هیچ راه معقول یا مناسبی برای انجام این کار با استفاده از فیلدهای یک سند وجود ندارد. (من چند ترکیب فیلد "انتخاب تاریخ آینده" را دیده ام، اما آنها واقعاً غول پیکر هستند و برای استفاده معمولی نیستند.) راه حل بهتر این است که از یک ماکرو برای درج، در نقطه درج، تاریخ چهارشنبه آینده استفاده کنید. بودن. مثال زیر نشان می دهد که چنین ماکرو چقدر می تواند ساده باشد:
Sub ForceWednesday()
Dim dMyDate As Date
dMyDate = Date
While WeekDay(dMyDate) <> 4
dMyDate = dMyDate + 1
Wend
Selection.TypeText Text:=Format(dMyDate, "mmmm d, yyyy")
End Sub
هنگامی که ماکرو را اجرا می کنید، تاریخ فعلی را به متغیر dMyDate اختصاص می دهد. این متغیر به طور مداوم افزایش می یابد تا زمانی که روز هفته 4 (یک چهارشنبه) باشد. سپس تاریخ قالب بندی شده و در محل نقطه درج تایپ می شود.
ماکرو را می توان به راحتی تغییر داد تا همیشه تاریخ چهارشنبه آینده را در یک مکان خاص از سند قرار دهد. تنها کاری که باید انجام دهید این است که آن را طوری تغییر دهید که مثلاً یک نشانک را جستجو کند و تاریخ قالب بندی شده را جایگزین نشانک کند. حتی می توانید Word را طوری تنظیم کنید که ماکرو در طول رویداد BeforePrint اجرا شود، به این معنی که درست قبل از چاپ اجرا می شود.