How to Quickly Delete Columns Using VBA in 3 Minutes (Excel)

Written by Kasper Langmann

Visual Basic for Applications (VBA) is a powerful tool that can significantly simplify your work in Excel. One of the tasks that VBA can perform quickly and efficiently is deleting columns. This guide will walk you through the process of deleting columns using VBA, which can be accomplished in as little as three minutes.

Understanding VBA

Before we dive into the specifics of deleting columns using VBA, it’s important to understand what VBA is and how it works. VBA is a programming language developed by Microsoft that is used in many of their applications, including Excel. It allows users to automate tasks and perform complex operations that would be difficult or impossible to do manually.

VBA is particularly useful in Excel because it can manipulate the data and structure of worksheets. This includes tasks like inserting and deleting rows or columns, sorting data, and performing calculations. By automating these tasks, you can save time and reduce the risk of errors.

The Basics of VBA in Excel

Excel VBA is event-driven, meaning it responds to actions performed by the user or by Excel itself. These actions, or events, can include things like opening a workbook, changing a cell’s value, or clicking a button.

When you perform an action that triggers an event, Excel runs a VBA procedure, also known as a macro. This macro is a series of VBA commands that tell Excel what to do. By writing your own macros, you can customize Excel’s behavior to suit your needs.

Deleting Columns with VBA

Now that we have a basic understanding of VBA, let’s look at how you can use it to delete columns in Excel. The process is surprisingly simple and can be accomplished in just a few steps.

The first step is to open the VBA editor. You can do this by pressing Alt + F11 on your keyboard. This will open a new window where you can write your VBA code.

Writing the VBA Code

The next step is to write the VBA code that will delete the columns. This code will be written in a new module, which is a container for your VBA code. To create a new module, click on “Insert” in the menu bar and select “Module”.

The code to delete a column is quite simple. Here’s an example:

Sub DeleteColumn()
End Sub

This code will delete column A when the macro is run. You can replace “A” with the letter of any column you want to delete.

Running the VBA Code

Once you’ve written your VBA code, the final step is to run the macro. You can do this by pressing F5 on your keyboard or by clicking “Run” in the menu bar and selecting “Run Sub/UserForm”.

After running the macro, you should see that the specified column has been deleted from your worksheet.

Advanced VBA Column Deletion

The above example shows how to delete a single column, but what if you want to delete multiple columns, or a range of columns? VBA can handle these tasks as well, with just a few modifications to the code.

Deleting Multiple Columns

To delete multiple columns, you can simply list them in the Columns function, separated by commas. Here’s an example:

Sub DeleteColumns()
End Sub

This code will delete columns A, C, and E when the macro is run.

Deleting a Range of Columns

To delete a range of columns, you can specify the range in the Columns function. Here’s an example:

Sub DeleteColumnRange()
End Sub

This code will delete columns A through E when the macro is run.


As you can see, deleting columns in Excel using VBA is a straightforward process that can save you a lot of time. Whether you’re deleting a single column, multiple columns, or a range of columns, VBA can handle the task with ease.

Remember, though, that VBA is a powerful tool that should be used with care. Always make sure to save your work before running a macro, and consider making a backup of your workbook before making major changes with VBA.