How to Quickly Create a List in VBA: Learn in 3 Minutes (Excel)

Written by Kasper Langmann

Visual Basic for Applications (VBA) is a powerful programming language built into Excel. It allows users to automate tasks and operations in the spreadsheet application. One of the many things you can do with VBA is create lists. This skill can be incredibly useful in many scenarios, whether you’re organizing data, creating dropdown menus, or managing information in your spreadsheets.

Understanding VBA and Its Applications

VBA, or Visual Basic for Applications, is a programming language developed by Microsoft. It’s primarily used for automating tasks in Microsoft Office applications, including Excel. If you’ve ever found yourself repeating the same actions or commands in Excel, VBA can likely make your life easier by automating those tasks.

One of the most common uses of VBA in Excel is to create and manage lists. Lists in Excel are essential for organizing and sorting data, and they can be used in a variety of ways, from simple data organization to complex data analysis and reporting.

Why Use VBA to Create Lists?

While Excel provides basic tools for creating lists, VBA takes it to the next level. With VBA, you can create dynamic lists that update automatically based on specific criteria. This can save you a significant amount of time and effort, especially when working with large amounts of data.

Furthermore, VBA allows you to create more complex lists that would be difficult or impossible to create using Excel’s built-in tools. For example, you can use VBA to create a list that includes only unique items, or a list that automatically sorts items in a specific order.

Creating a List in VBA: A Step-by-Step Guide

Now that you understand the benefits of using VBA to create lists in Excel, let’s dive into the process. While it may seem complex at first, with a bit of practice, you’ll be able to create lists in VBA quickly and easily.

Before we begin, it’s important to note that you’ll need to have the Developer tab enabled in Excel to access VBA. If you don’t see the Developer tab on your Excel ribbon, you can enable it by going to File > Options > Customize Ribbon and checking the box for Developer.

Step 1: Open the VBA Editor

The first step in creating a list in VBA is to open the VBA editor. You can do this by clicking on the Developer tab in Excel and then clicking on the Visual Basic button. This will open the VBA editor in a new window.

In the VBA editor, you’ll see a Project Explorer pane on the left side of the screen. This pane shows all of the open Excel workbooks and their components. If you don’t see the Project Explorer, you can open it by going to View > Project Explorer.

Step 2: Insert a New Module

Next, you’ll need to insert a new module. A module is a container for VBA code. You can think of it as a blank canvas for your VBA program.

To insert a new module, go to Insert > Module in the VBA editor. This will create a new module and open a blank code window on the right side of the screen.

Step 3: Write the VBA Code

Now it’s time to write the VBA code to create your list. The exact code you’ll need will depend on what you want your list to do. However, here’s a simple example of how you might create a list of numbers from 1 to 10:

Sub CreateList()
    Dim List As Object
    Set List = CreateObject("System.Collections.ArrayList")
    For i = 1 To 10
        List.Add i
    Next i
    For Each Item In List
        Debug.Print Item
    Next Item
End Sub

This code creates a new ArrayList object, adds numbers 1 to 10 to the list, and then prints each item in the list to the Immediate window.

Understanding the VBA Code

Now that you’ve seen an example of VBA code for creating a list, let’s break it down to understand how it works.

The Sub and End Sub Statements

The Sub statement is used to define a new subroutine, which is a block of code that performs a specific task. In this case, the subroutine is named CreateList. The End Sub statement marks the end of the subroutine.

The Dim Statement

The Dim statement is used to declare a variable. In this case, the variable is named List and is declared as an Object. This means that it can hold any type of data.

The Set Statement

The Set statement is used to assign an object to a variable. In this case, it’s used to create a new ArrayList object and assign it to the List variable.

The For…Next Loop

The For…Next loop is used to repeat a block of code a specific number of times. In this case, it’s used to add numbers 1 to 10 to the list.

The For Each…Next Loop

The For Each…Next loop is used to iterate over a collection of items. In this case, it’s used to print each item in the list to the Immediate window.


Creating lists in VBA can be a powerful tool in your Excel toolkit. While it may seem daunting at first, with a bit of practice, you’ll be able to create dynamic, automated lists that can save you time and enhance your data analysis capabilities. Remember, the key to mastering VBA is practice, so don’t be afraid to experiment and try creating different types of lists to see what you can do.