How to Master Classes in VBA: A Rapid Tutorial in 3 Minutes (Excel)

Written by Kasper Langmann

Visual Basic for Applications (VBA) is a programming language developed by Microsoft that is primarily used for automating tasks in Microsoft Office applications. One of the most powerful features of VBA is its ability to create and manipulate classes. This tutorial will guide you through the process of mastering classes in VBA, specifically in the context of Excel.

Understanding Classes in VBA

Before we delve into the specifics of how to master classes in VBA, it’s crucial to understand what classes are and why they are important. In the simplest terms, a class in VBA is a blueprint for creating objects. These objects can have properties, methods, and events that define their behavior and characteristics.

Classes are a fundamental aspect of object-oriented programming (OOP), a paradigm that allows for the creation of complex and robust applications. OOP is based on the concept of “objects”, which can contain data and code. Data represents the state of the object, while code represents its behavior.

The Importance of Classes

Classes can greatly enhance the functionality and efficiency of your VBA code. They allow you to encapsulate data and methods into a single unit, making your code more organized and easier to maintain. Additionally, classes can be reused across different parts of your application, reducing the amount of code you need to write and making your application more efficient.

Furthermore, classes provide a way to model real-world objects within your code. This can make your code more intuitive and easier to understand, as it can closely mirror the problem you are trying to solve.

Creating a Class in VBA

Now that we understand the importance of classes in VBA, let’s move on to creating a class. The process of creating a class in VBA involves defining the class and its properties, methods, and events.

The first step in creating a class is to add a new class module. This can be done by right-clicking in the Project Explorer window, selecting ‘Insert’, and then ‘Class Module’. You can then rename the class module in the Properties window.

Defining Properties

Properties are characteristics or attributes of an object. In VBA, properties are defined using the ‘Property Get’, ‘Property Let’, and ‘Property Set’ procedures. The ‘Property Get’ procedure is used to return the value of a property, while the ‘Property Let’ and ‘Property Set’ procedures are used to assign values to properties.

It’s important to note that ‘Property Let’ is used for properties that hold simple data types, like integers or strings, while ‘Property Set’ is used for properties that hold objects.

Defining Methods

Methods are actions that an object can perform. In VBA, methods are defined using sub procedures or function procedures. Sub procedures perform an action but do not return a value, while function procedures perform an action and return a value.

When defining methods, it’s important to consider the scope of the method. The scope determines where the method can be accessed from. Methods can be public, meaning they can be accessed from anywhere, or private, meaning they can only be accessed within the class.

Using Classes in VBA

Once a class has been defined, it can be used to create objects. This is done using the ‘New’ keyword. For example, if you have a class named ‘Employee’, you can create a new ‘Employee’ object like this: ‘Set emp = New Employee’.

Once an object has been created, you can access its properties and methods using the dot notation. For example, you can set the ‘Name’ property of the ’emp’ object like this: ’emp.Name = “John Doe”‘. Similarly, you can call the ‘DisplayInfo’ method of the ’emp’ object like this: ’emp.DisplayInfo’.

Working with Collections of Objects

In many cases, you will need to work with collections of objects. VBA provides the ‘Collection’ class for this purpose. The ‘Collection’ class allows you to add, remove, and retrieve objects in a collection.

To add an object to a collection, you can use the ‘Add’ method. To remove an object from a collection, you can use the ‘Remove’ method. To retrieve an object from a collection, you can use the ‘Item’ method.


Mastering classes in VBA can greatly enhance your ability to create powerful and efficient applications. By understanding the concepts of object-oriented programming and learning how to create and use classes, you can take your VBA programming skills to the next level.

Remember, practice is key when it comes to mastering any new skill. So, don’t be afraid to experiment with classes and try to incorporate them into your own projects. Happy coding!