La función VBA WeekdayName devuelve el nombre del día de la semana en función de su número.
WeekdayName(fecha)
O
WeekdayName(fecha, primer_día_de_la_semana)
Por defecto, el primer día de la semana es el domingo (1) y el último día es el sábado (7).
Para cambiar la numeración de modo que el lunes sea el primer día de la semana (1) y el domingo sea el último día de la semana (7), agregue el valor 2 como segundo argumento al usar esta función:
WeekdayName(fecha, 2)
Usando la función WeekdayName para mostrar el nombre de los 7 días:
Sub WeekdayNameExample1()
MsgBox WeekdayName(1) 'Devoluciones: lunes
MsgBox WeekdayName(2) 'Devoluciones: martes
MsgBox WeekdayName(3) 'Devoluciones: miércoles
MsgBox WeekdayName(4) 'Devoluciones: jueves
MsgBox WeekdayName(5) 'Devoluciones: viernes
MsgBox WeekdayName(6) 'Devoluciones: Sábado
MsgBox WeekdayName(7) 'Devoluciones: Domingo
End Sub
La función WeekdayName también puede mostrar una versión abreviada del día pasando un valor como segundo argumento:
Sub WeekdayNameExample2()
MsgBox WeekdayName(1, True) 'Devoluciones: lun.
MsgBox WeekdayName(2, True) 'Devoluciones: mar.
MsgBox WeekdayName(3, True) 'Devoluciones: mié.
MsgBox WeekdayName(4, True) 'Devoluciones: jue.
MsgBox WeekdayName(5, True) 'Devoluciones: Vie.
MsgBox WeekdayName(6, True) 'Devoluciones: sáb.
MsgBox WeekdayName(7, True) 'Devoluciones: dom.
End Sub
Usando las funciones Weekday y WeekdayName, puede obtener el nombre del día de la semana a partir de una fecha:
Sub WeekdayNameExample3()
MsgBox WeekdayName(Weekday("30/11/2020", 2)) 'Devoluciones: lunes
End Sub
Aunque es más fácil ir directamente a través de la función de formato FORMAT:
Sub WeekdayNameExample4()
MsgBox Format("30/11/2020", "dddd") 'Devoluciones: lunes
End Sub