The VBA WeekdayName function returns the name of the day of the week based on its number.
WeekdayName(date)
Or
WeekdayName(date, first_day_of_the_week)
By default, the first day of the week is Sunday (1) and the last day is Saturday (7).
To change the numbering so that Monday is the first day of the week (1) and Sunday is the last day of the week (7), add the value 2 as the second argument when using this function:
WeekdayName(date, 2)
Using the WeekdayName function to display the name of the 7 days:
Sub WeekdayNameExample1()
MsgBox WeekdayName(1) 'Returns: Monday
MsgBox WeekdayName(2) 'Returns: Tuesday
MsgBox WeekdayName(3) 'Returns: Wednesday
MsgBox WeekdayName(4) 'Returns: Thursday
MsgBox WeekdayName(5) 'Returns: Friday
MsgBox WeekdayName(6) 'Returns: Saturday
MsgBox WeekdayName(7) 'Returns: Sunday
End Sub
The WeekdayName function can also display a shortened version of the day by passing a value as the second argument:
Sub WeekdayNameExample2()
MsgBox WeekdayName(1, True) 'Returns: Mon.
MsgBox WeekdayName(2, True) 'Returns: Tue.
MsgBox WeekdayName(3, True) 'Returns: Wed.
MsgBox WeekdayName(4, True) 'Returns: Thu.
MsgBox WeekdayName(5, True) 'Returns: Fri.
MsgBox WeekdayName(6, True) 'Returns: Sat.
MsgBox WeekdayName(7, True) 'Returns: Sun.
End Sub
Using the Weekday and WeekdayName functions, you can get the name of the day of the week from a date:
Sub WeekdayNameExample3()
MsgBox WeekdayName(Weekday("30/11/2020", 2)) 'Returns: Monday
End Sub
Although it is easier to go directly through the formatting function FORMAT:
Sub WeekdayNameExample4()
MsgBox Format("30/11/2020", "dddd") 'Returns: Monday
End Sub