Перейти к содержимому

VBA Excel. Рабочая книга (открыть, создать новую, закрыть)

Открытие книги Excel из кода VBA. Создание новой книги, присвоение ей имени. Обращение к открытой книге и закрытие. Методы Open, Add и Close объекта Workbooks.

  1. Открытие существующей книги
  2. Создание новой книги
  3. Обращение к открытой книге
  4. Как закрыть книгу Excel из кода VBA

Открытие существующей книги

Существующая книга открывается из кода VBA Excel с помощью метода Open:

Workbooks.Open Filename:="D:\test1.xls"

или

Workbooks.Open ("D:\test1.xls")

В кавычках указывается полный путь к открываемому файлу Excel. Если такой файл не существует, произойдет ошибка.
Проверить существование файла можно с помощью функции Dir:

If Dir("D:\test1.xls") = "" Then
    MsgBox "Файл не существует"
Else
    MsgBox "Файл существует"
End If

Или, если файл существует, можно сразу его открыть:

If Dir("D:\test1.xls") = "" Then
    MsgBox "Файл не существует"
Else
    Workbooks.Open Filename:="D:\test1.xls"
End If

Создание новой книги

Новая рабочая книга Excel создается в VBA с помощью метода Add:

Workbooks.Add

Созданную книгу, если она не будет использоваться как временная, лучше сразу сохранить:

Workbooks.Add
ActiveWorkbook.SaveAs Filename:="D:\test2.xls"

В кавычках указывается полный путь сохраняемого файла Excel, включая присваиваемое имя, в примере - это «test2.xls».

Обращение к открытой книге

Обращение к активной книге:

ActiveWorkbook

Обращение к книге с выполняемым кодом:

ThisWorkbook

Обращение к книге по имени:

Workbooks("test1.xls")
Workbooks("test2.xls")

Обратиться по имени можно только к уже открытой книге, а чтобы из кода VBA Excel книгу открыть, необходимо указать полный путь к файлу.

Как закрыть книгу Excel из кода VBA

Открытая рабочая книга закрывается из кода VBA Excel с помощью метода Close:

Workbooks("test1.xlsx").Close

Если закрываемая книга редактировалась, а внесенные изменения не были сохранены, тогда при ее закрытии Excel отобразит диалоговое окно с вопросом: Вы хотите сохранить изменения в файле test1.xlsx? Чтобы файл был закрыт без сохранения изменений и вывода диалогового окна, можно воспользоваться параметром метода Close - SaveChanges:

Workbooks("test1.xlsx").Close  SaveChanges:=False

или

Workbooks("test1.xlsx").Close  (False)

Закрыть книгу Excel из кода VBA с сохранением внесенных изменений можно также с помощью параметра SaveChanges:

Workbooks("test1.xlsx").Close  SaveChanges:=True

или

Workbooks("test1.xlsx").Close (True)

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.