How to Determine VBA Day of Week Quickly in 3 Minutes (Excel)

Written by Kasper Langmann

Mastering the use of Visual Basic for Applications (VBA) in Excel can greatly enhance your productivity and data analysis capabilities. One common task that many Excel users encounter is determining the day of the week for a given date. This task can be accomplished quickly and efficiently using VBA, and this guide will walk you through the process in just three minutes.

Understanding VBA and Its Application in Excel

VBA is a programming language developed by Microsoft that is used in conjunction with their Office applications. It allows users to automate tasks and perform complex functions that are not possible with the standard Excel interface. VBA is an event-driven language, meaning it responds to user actions such as mouse clicks or key presses.

One of the most powerful features of VBA is its ability to manipulate and analyze data in Excel. By using VBA, you can automate repetitive tasks, create custom functions, and perform complex calculations that would be difficult or impossible to do manually. This makes VBA an invaluable tool for anyone who works with large amounts of data in Excel.

Getting Started with VBA in Excel

Before you can use VBA to determine the day of the week in Excel, you’ll need to enable the Developer tab in Excel. This tab is not visible by default, but it can be enabled by going to File > Options > Customize Ribbon and checking the box for Developer. Once the Developer tab is enabled, you can access the VBA editor by clicking on the Visual Basic button.

Once you’re in the VBA editor, you can start writing your code. VBA code is written in modules, which are separate windows in the VBA editor. To create a new module, simply go to Insert > Module. You can then start writing your code in the module window.

Determining the Day of the Week Using VBA

Using the Weekday Function

The simplest way to determine the day of the week in VBA is to use the Weekday function. This function takes a date as input and returns a number between 1 and 7, representing the day of the week. By default, 1 represents Sunday and 7 represents Saturday, but this can be changed by passing a second argument to the function.

Here’s an example of how to use the Weekday function in VBA:

Sub GetDayOfWeek()
    Dim date As Date
    date = "2022-01-01"
    MsgBox Weekday(date)
End Sub

This code will display a message box with the number 7, representing Saturday.

Converting the Weekday Number to a Day Name

While the Weekday function is useful for determining the day of the week, it returns a number rather than the name of the day. To convert this number to a day name, you can use the Choose function. The Choose function takes an index number as its first argument, followed by a list of values. It returns the value that corresponds to the index number.

Here’s an example of how to use the Choose function to convert the weekday number to a day name:

Sub GetDayName()
    Dim date As Date
    date = "2022-01-01"
    MsgBox Choose(Weekday(date), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
End Sub

This code will display a message box with the word “Saturday”.


Using VBA to determine the day of the week in Excel is a simple and efficient process. By leveraging the power of the Weekday and Choose functions, you can quickly find the day of the week for any date. Whether you’re a seasoned Excel user or a beginner just starting to explore the capabilities of VBA, this guide provides the tools you need to enhance your data analysis and productivity.

Remember, the key to mastering VBA is practice. Don’t be afraid to experiment with different functions and techniques. With time and practice, you’ll be able to automate complex tasks and transform your Excel spreadsheets into powerful data analysis tools.