Paste the following two procedures into a code module and run SplitDate:
'----------------------
Sub SplitDate()
dayz = strOrdinal(DatePart("d", Date))
monthz = DatePart("m", Date)
yearz = DatePart("yyyy", Date)
Select Case monthz
Case 1
monthzz = "January"
Case 2
monthzz = "February"
Case 3
monthzz = "March"
Case 4
monthzz = "April"
Case 5
monthzz = "May"
Case 6
monthzz = "June"
Case 7
monthzz = "July"
Case 8
monthzz = "August"
Case 9
monthzz = "September"
Case 10
monthzz = "October"
Case 11
monthzz = "November"
Case 12
monthzz = "December"
End Select
MsgBox "On this the " & dayz & " day of " & monthzz & " A.D. " & yearz
End Sub
Function strOrdinal(n) As String
If n < 0 Then
strOrdinal = "negative numbers not supported"
Exit Function
End If
Select Case n \ 10
Case 1
strOrdinal = n & "th"
Case Else
Select Case n Mod 10
Case 1
If n Mod 100 = 11 Then
strOrdinal = n & "th"
Else
strOrdinal = n & "st"
End If
Case 2
If n Mod 100 = 12 Then
strOrdinal = n & "th"
Else
strOrdinal = n & "nd"
End If
Case 3
If n Mod 100 = 13 Then
strOrdinal = n & "th"
Else
strOrdinal = n & "rd"
End If
Case Else
strOrdinal = n & "th"
End Select
End Select
End Function
'----------------------
I didn't bother with error trapping or declaring variables or passing in a
date. It just works on today's date, however, you should be able to add
these.