برای برخی از اسناد، داشتن فهرستی از تاریخ هایی که می توانید به عنوان مبنای کار خود استفاده کنید، مفید است. به عنوان مثال، ممکن است مجبور باشید گزارشی ایجاد کنید که تمام تاریخهای بین هماکنون تا پایان سال را به همراه نام شخص یا نام پروژه در سمت راست تاریخ فهرست میکند. البته نقطه شروع این است. دریافت لیست تاریخ ها
چند راه وجود دارد که می توانید به تهیه لیست نزدیک شوید. یکی از روش های آسان استفاده از اکسل در کنار Word است. ویژگی تکمیل خودکار اکسل تولید یک لیست از تاریخ ها را به طرز شگفت انگیزی آسان می کند. هنگامی که لیست را در اکسل دارید، می توانید آن را کپی کرده و در سند Word جایگذاری کنید، یا می توانید از ادغام نامه برای ادغام تاریخ ها در سند استفاده کنید (اگر رویکرد برای نیازهای شما مناسب است).
اگر به دلایلی ترجیح می دهید از اکسل استفاده نکنید، بهترین راه حل استفاده از ماکرو است. ماکرو زیر به سرعت فهرستی از تمام تاریخ های سال 2021 ایجاد می کند:
Sub PrintYearDays()
Dim StartDate As Date
Dim T As Integer
StartDate = #12/31/2020#
For T = 1 To 365
Selection.TypeText Text:=Format(StartDate + T, _
"mmmm dd yyyy")
Selection.TypeParagraph
Next T
End Sub
توجه داشته باشید که ماکرو با تنظیم متغیر StartDate برابر با آخرین روز سال 2020 کار می کند و سپس حلقه For ... بعدی را تا 365 روز طی می کند. اگر می خواهید کار ماکرو را برای محدوده تاریخ دیگری داشته باشید، فقط تاریخ شروع را به همراه مقدار پایانی حلقه For ... بعدی تغییر دهید.
اگر نیاز به ایجاد لیست تاریخ دارید، و هرگز نمی دانید تاریخ شروع و پایان در محدوده چه خواهد بود، یک رویکرد کلان متفاوت منطقی تر است. ماکرو زیر از شما تاریخ شروع و پایان را می خواهد:
Sub ListDates()
Dim ListDate as Date
Dim StartDate As Date
Dim EndDate As Date
Dim Repeats As Integer
"Gets user input
StartDate = InputBox("Please enter the starting date.", _
"Start Date", "Start Date")
EndDate = InputBox("Please enter the ending date.", _
"End Date", "End Date")
"Enters the start date in the document
Selection.TypeText Text:=Format(StartDate, _
"dddd, MMMM dd, yyyy")
Selection.TypeText (vbCr & vbLf)
"Determines the number of dates to print
Repeats = DateDiff("d", StartDate, EndDate)
"Loops to print the list of dates
For i = 1 To Repeats
ListDate = DateAdd("d", i, StartDate)
Selection.TypeText Text:=Format(ListDate, _
"dddd, MMMM dd, yyyy")
Selection.TypeParagraph
Next i
End Sub
متغیرهای StartDate و EndDate که توسط ورودی شما تنظیم می شوند، تعیین می کنند که حلقه For... Next چند بار تکرار شود.