Как проверить, открыта ли книга через vba?
Чтобы проверить, открыта ли книга с помощью любого кода VBA, вам необходимо использовать цикл FOR EACH , который может перебирать все книги, открытые в данный момент, и проверять имя каждой книги с указанным вами именем. Вы можете использовать окно сообщения , чтобы получить результат цикла. Или вы также можете ввести код для ввода результата в ячейку.
Проверьте, открыта ли рабочая книга
-  Во-первых, вам нужно объявить переменные , которые будут использоваться в коде для создания цикла. 

 -  Используйте поле ввода, чтобы получить имя книги, которую вы хотите найти. 

 -  Запустите цикл для просмотра всех открытых книг. 

 -  Напишите код с помощью IF STATEMENT , чтобы сверить имя книги с именем, которое вы ввели в поле ввода, и как только имя совпадет, книга активируется, отображается окно сообщения о том, что книга найдена, и завершается процедура. 

 -  В конце завершите цикл и используйте окно сообщения для отображения окна сообщения, если ничего не найдено. 

 
Полезные ссылки: Запуск макроса – Средство записи макросов – Редактор Visual Basic – Персональный справочник по макросам
Вот полный код.
 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 WB.Activate MsgBox "Workbook Found!" Exit Sub End If Next WB MsgBox "Not Found" End Sub