How to Open Workbook in Background with Excel VBA in 3 Minutes

Written by Kasper Langmann

Excel VBA, or Visual Basic for Applications, is a powerful tool that can automate and enhance your experience with Excel. One of the many tasks you can accomplish with VBA is opening a workbook in the background. This can be useful in a variety of scenarios, such as when you want to access data from another workbook without interrupting your current workflow. In this guide, we will walk you through the process of accomplishing this task in just three minutes.

Understanding Excel VBA

Before we delve into the specifics of opening a workbook in the background, it’s important to have a basic understanding of Excel VBA. VBA is a programming language that was developed by Microsoft for their Office applications. It allows users to automate tasks and customize their experience with the software. With VBA, you can create macros, automate data entry, and perform a wide range of other tasks.

Excel VBA is particularly powerful because it allows you to manipulate data in Excel spreadsheets. You can use it to automate repetitive tasks, perform complex calculations, and even create custom functions. If you’re not already familiar with VBA, don’t worry. You don’t need to be an expert to follow along with this guide. However, a basic understanding of the language will certainly be beneficial.

Why Open a Workbook in the Background?

There are many reasons why you might want to open a workbook in the background. Perhaps you need to access data from another workbook, but you don’t want to interrupt your current workflow. Or maybe you’re working with a large workbook that takes a long time to load, and you want to continue working while it opens.

Opening a workbook in the background with VBA is also useful when you’re automating tasks. For example, you might have a macro that pulls data from multiple workbooks. By opening these workbooks in the background, you can ensure that your macro runs smoothly and efficiently.

How to Open a Workbook in the Background with Excel VBA

Step 1: Accessing the VBA Editor

The first step in opening a workbook in the background with Excel VBA is to access the VBA editor. You can do this by pressing Alt + F11 on your keyboard. This will open the VBA editor in a new window.

Once you’re in the VBA editor, you’ll see a tree structure on the left side of the screen. This is the Project Explorer, and it shows all of the workbooks that are currently open in Excel. Each workbook is represented by a folder, and within each folder, you’ll see all of the worksheets in that workbook.

Step 2: Writing the VBA Code

The next step is to write the VBA code that will open the workbook in the background. To do this, you’ll need to insert a new module. You can do this by right-clicking on any of the workbook folders in the Project Explorer and selecting Insert > Module.

Once you’ve inserted a new module, you can start writing your VBA code. Here’s a simple example of what this code might look like:

Sub OpenWorkbookInBackground()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:pathtoyourworkbook.xlsx", ReadOnly:=True, UpdateLinks:=False)
    wb.Windows(1).Visible = False
End Sub

This code creates a new subroutine called OpenWorkbookInBackground. It then declares a variable wb as a Workbook object and uses the Workbooks.Open method to open the workbook at the specified path. The ReadOnly and UpdateLinks parameters are set to True and False, respectively, to prevent the workbook from being edited and to prevent any links in the workbook from being updated. Finally, the Visible property of the workbook’s window is set to False to open the workbook in the background.

Step 3: Running the VBA Code

Once you’ve written your VBA code, you can run it by pressing F5 on your keyboard or by selecting Run > Run Sub/UserForm from the menu. This will run the OpenWorkbookInBackground subroutine and open the specified workbook in the background.

After running the code, you can verify that the workbook has been opened in the background by checking the Project Explorer. You should see a new folder for the workbook, but the workbook itself will not be visible in Excel.

Additional Considerations

While the above steps provide a basic guide on how to open a workbook in the background with Excel VBA, there are a few additional considerations to keep in mind. First, the path to the workbook in the VBA code must be correct. If the path is incorrect, the Workbooks.Open method will return an error.

Second, if the workbook you’re trying to open in the background is already open in Excel, the Workbooks.Open method will simply activate the existing workbook rather than opening a new instance of it. To avoid this, you can check if the workbook is already open before trying to open it.

Finally, keep in mind that opening a workbook in the background can consume a significant amount of memory, especially if the workbook is large. Therefore, it’s a good idea to close the workbook when you’re done with it to free up memory. You can do this by calling the Close method on the Workbook object, like so: wb.Close SaveChanges:=False.


Excel VBA offers a powerful way to automate tasks and enhance your experience with Excel. By understanding how to open a workbook in the background, you can access data from other workbooks without interrupting your current workflow. Whether you’re a seasoned VBA programmer or a beginner, this guide provides a quick and easy way to accomplish this task in just three minutes.

Remember, while VBA can greatly enhance your productivity, it’s also important to use it responsibly. Always double-check your code for errors and save your work frequently to prevent data loss. With careful use, VBA can be a powerful tool in your Excel toolkit.