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

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)
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

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

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].