Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Generating a List of Dates.

Generating a List of Dates

by Allen Wyatt
(last updated May 16, 2015)

For some documents, it is helpful to have a list of dates that you can use as the basis for your work. For instance, you may have to create a report that lists all the dates between now and the end of the year, along with a person's name or a project name to the right of the date. The starting point, of course, is getting the list of dates.

There are a couple of ways you can approach generating the list. One easy method is to use Excel in conjunction with Word. Excel's AutoFill feature makes generating a list of dates amazingly easy. Once you have the list in Excel, you can then copy and paste it into the Word document, or you can use mail merge to merge the dates into the document (if that approach is appropriate for your needs).

If you prefer to not use Excel for some reason, the best solution is to use a macro. The following macro very quickly creates a list of all the dates for the year 2015:

Sub PrintYearDays()
    Dim DateToday As Date
    Dim T As Integer

    'Because the date is going to be changed, save it
    DateToday = Date
    Date = #12/31/2014#

    For T = 1 To 365
        Selection.TypeText Text:=Format(Date + T, _
          "mmmm dd yyyy")
        Selection.TypeParagraph
    Next T

    'Restore today's date
    Date = DateToday
End Sub

Notice that the macro works by resetting the date on your system. Today's current date is stored in the DateToday variable, and then the date is reset to the starting date for your range. If you want to have the macro work for some other date range, just change the starting date, along with the ending value of the For ... Next loop.

If you need to create date lists, and you never quite know what the beginning and ending dates in the range will be, then a different macro approach makes more sense. The following macro asks you for both a beginning and ending date:

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

The StartDate and EndDate variables, set by your input, determines how many times the For ... Next loop is repeated.

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (3864) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Generating a List of Dates.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He  is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Catching Single-Letter Spelling Errors

There have been times when I've reviewed my writing and found lots of "lone letters," detached by a single space from the ...

Discover More

Stopping Enter from being Pressed In a Form

If you create a form using Word, chances are good that you don't want a user to mess up the layout of the form by pressing ...

Discover More

Using Last-page Headers and Footers

Headers and footers add a nice touch to your documents, particularly if they are printed. You may want Word to use a special ...

Discover More

Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!

MORE WORDTIPS (MENU)

Using Overtype Mode

When you type information into a document, what you type normally is inserted just the left of the insertion point. Word ...

Discover More

Adding an Optional Break

The no-width optional break is primarily used for Asian languages in Word. It can have value for English-speakers, as ...

Discover More

Removing Entire Paragraphs from Your Document

If you need to get rid of a lot of paragraphs in a document, it's easy to do as long as the document relies on styles for ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments for this tip:

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)

This Site

Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.

Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.

Links and Sharing
Share