How to CHECK IF a Workbook is OPEN using VBA

To check if a workbook is open using a VBA code, you need to use FOR EACH loop that can loop through all the workbooks that are open at the moment and verify each workbook’s name with the name you have mentioned. You can use a message box to get the result of the loop. Or you can also make the code to enter the result in a cell.


  1. First, you need to declare variables to use in the code to create a loop.
  2. Use an input box to get the name of the workbook that you wish to search for.
  3. Start the loop to loop through all the open workbooks.
  4. Write code with IF STATEMENT to verify the name of the workbook with the name you have entered in the input box, and once the name matches, activates the workbook, show a message box that workbook is found, and exit the procedure.
  5. In the end, end the loop and use a message box to show a message box if nothing has been found.

Helpful Links: Run a MacroMacro RecorderVisual Basic EditorPersonal Macro Workbook

Here’s the full code.

Sub vba_check_workbook()

Dim WB As Workbook
Dim myWB As String

myWB = InputBox(Prompt:="Enter the workbook name.")

For Each WB In Workbooks
    If WB.Name = myWB Then
        MsgBox "Workbook Found!"
        Exit Sub
    End If
Next WB

MsgBox "Not Found"

End Sub