Автозапуск макроса при открытии книги в Excel

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

В первую очередь рекомендуем ознакомиться с основными тезисами и принципами работы в редакторе VBA.
Для начала перейдем в редактор Visual Basic, для этого в панели вкладок выбираем «Разработчик» -> «Visual Basic» или нажимаем комбинацию клавиш Alt + F11.

В данной статье речь пойдет о макросах, действия которых выполняются при наступлении определенных условий в книге.
Поэтому мы будем работать с модулем «ЭтаКнига», который предназначен как раз для подобных целей.
В левой части окна редактора выбираем данный модуль:

Модуль "ЭтаКнига"

Модуль «ЭтаКнига»


В правой части окна редактора в левом списке выбираем объект Workbook, в правом списке можно увидеть перечень обрабатываемых Excel событий для книги, такие как Open (открытие книги), BeforeClose (закрытие книги) и т.д.:

Обрабатываемые события в Excel
Ознакомимся с основными из них.

Запуск макроса при открытии книги

Workbook_Open — событие, происходящее при открытии книги.
Код макроса добавляется автоматически при выборе элемента в выпадающем списке:

Запуск макроса при закрытии книги

Подобно макросу для открытии книги существует аналогичный и для закрытия.
Workbook_BeforeClose — событие, соответственно, происходящее при закрытии книги.

Другие основные обрабатываемые события для книги:

  • Activate — событие, происходящее при активации книги (т.е. при переходе из другой активной книги в данную);
  • Deactivate — событие, происходящее при переходе в другую книгу;
  • SheetActivate — событие, происходящее при активации листа книги;
  • SheetDeactivate — событие, происходящее при переходе на другой лист книги;
  • SheetCalculate — событие, происходящее при пересчете формул на листе;
  • BeforePrint — событие, происходящее при печати книги;
  • BeforeSave — событие, происходящее при сохранении книги;
  • NewSheet — событие, происходящее при создании нового листа книги.

Запуск макроса при открытии листа

Workbook_SheetActivate — событие, происходящее при открытии любого листа в книге.

При этом макрос будет работать при открытии любого листа в данной книге.
Если же необходимо обработать событие для какого-то конкретного листа книги, то нужно выбрать модуль с названием данного листа:

Модуль листа

Модуль листа


В правой части окна редактора в левом списке выбираем объект Worksheet, в правом списке можно увидеть перечень обрабатываемых Excel событий для листа, например, Activate (активация листа), Calculate (пересчёт листа) и т.д.:

Обрабатываемые события листа в Excel
Worksheet_Activate — событие, происходящее при активации листа в книге.

Другие основные обрабатываемые события для листа:

  • Activate — событие, происходящее при активации листа;
  • BeforeDoubleClick — событие, происходящее по двойному щелчку по любой ячейке листа;
  • BeforeRightClick — событие, происходящее при нажатии правой кнопки мыши на любой ячейке листа;
  • Calculate — событие, происходящее при пересчете формул на листе;
  • Change — событие, происходящее при изменении значений ячеек на листе;
  • Deactivate — событие, происходящее при переходе на другой лист книги;
  • FollowHyperlink — событие, происходящее при переходе по гиперссылке на листе;
  • SelectionChange — событие, происходящее при изменении адреса выделенной области.

Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!

Поделиться с друзьями:
Поиск по сайту:

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

Ваш e-mail не будет опубликован.

Читайте ранее:
Диаграмма водопад (waterfall chart) в Excel

Диаграмма водопад используется для визуализации факторного анализа, когда необходимо показать изменение каждого фактора от начального значения до конечного.

Закрыть