Часто возникают ситуации, когда какие-либо процедуры необходимо выполнить при открытии или закрытии рабочих книг. Excel предлагает простой способ выполнения таких процедур. Если, например, процедура должна выполняться при открытии книги, то просто назовите ее Auto_Open.
Процедуру Auto_Open можно использовать для решения следующих задач:
инициализация значений переменных;
добавление пользовательских меню и панелей инструментов;
изменение установок приложения (таких как отображение сетки рабочего листа или формат вывода нулевых значений);
вставка рабочих листов;
выполнение форматирования;
удаление ненужных данных из рабочего листа.
Процедура, выполняемая при закрытии рабочей книги, называется Auto_Close. Вот типичные задачи, выполняемые этой процедурой:
удаление ненужных рабочих листов;
сохранение рабочей книги под другим именем в качестве резервной копии;
возвращение стандартных установок окна приложения (восстановление меню и панелей инструментов, отображение сетки рабочего листа и т.п.).
Можно использовать обе или только одну из этих процедур.
Имена этих процедур не чувствительны к применяемому регистру, т.е. их можно писать как строчными, так и прописными буквами.
Если рабочая книга открывается из процедуры VBA, то процедуры Auto не выполняются. В этом случае для выполнения этих процедур используется метод RunAutoMacros.
Приведем примеры процедур Auto_Open и Auto_Close. Откройте новую рабочую книгу, вставьте модуль и в этом модуле создайте процедуру Auto_Open, код которой показан в листинге 24.1.
Листинг 24.1. Пример процедуры Auto Open
1: Sub Auto_Open()
2: Range("A1").Value = "Текущая дата:"
3:
4: Range("B1").FormulaR1C1 = "=NOW()"
5: Columns("A:B").EntireColumn.AutoFit
6:
7: With ActiveWindow
8: .DisplayHorizontalScrollBar = False
9: .DisplayVerticalScrollBar = False
10: End With
11: With Application
12: .DisplayFormulaBar = False
13: .DisplayStatusBar = False
14: End With
15: End Sub
Эта процедура вводит в рабочий лист текущую дату и время и удаляет из окна Excel полосы прокрутки, строку формул и строку состояния. Если надо восстановить внешний вид окна Excel после закрытия этой рабочей книги, создайте еще процедуру Auto_Close, код которой приведен в листинге 24.2.
Листинг 24.2. Пример процедуры Auto Close
1: Sub Auto_Close()
2:
3: With ActiveWindow
4: .DisplayHorizontalScrollBar = True
5: .DisplayVerticalScrollBar = True
6: End With
7: With Application
8: .DisplayFormulaBar = True
9: .DisplayStatusBar = True
10: End With
11: End Sub
Сохраните эту рабочую книгу пол именем Час24. Для тестирования процедур закройте рабочую книгу, а затем откройте ее снова. Вы увидите текущую дату в ячейке В1, а также заметите отсутствие полос прокрутки, строки формул и строки состояния (рис. 24.1).Закройте эту рабочую книгу и откройте новую, чтобы убедиться в том, что привычный вид окна Excel восстановлен.
Рис. 24.1. Процедуры, выполняемые при открытии рабочих книг, полезны для настройки среды Excel