Excel работает за вас

Excel works!

Thanks for Visiting

Запуск макроса в Excel. Как запустить макрос при открытии файла?

Если вы часто пользуетесь макросами в MS Excel, то уверен у вас не раз возникал вопрос: «Как быстро запустить написанный макрос?». Можно привязать горячую клавишу, например. Так же мы расскажем, как сделать так, чтобы макрос был доступен из любого файла Excel и можно сделать быстрый запуск макроса в Excel.

Если вы не знаете о чем идет речь, то советую прочитать специальную статью . Если коротко, макрос — это список действий, записанных при помощи «языка» VBA. Очень удобно, записать такую последовательность, если вы часто выполняете одни и те же операции (их можно записать специальным инструментом — макрорекордером ). Макрос будет выполнять их при нажатии одной кнопки .

Где посмотреть полившийся макрос и запустить его?

Самый удобный способ работы с макросами и связанными инструментами — вывести вкладку Разработчик на панель инструментов

Включается он несложно — заходим в левую, верхнюю кнопку Параметры Excel — раздел Основные — в правом окне ставим галочку Показывать вкладку Разработчик на ленте

Как мы видим, здесь большой выбор инструментов, от возможности зайти в Visual Basic до вставки объекта, например кнопки.

Запуск макроса можно осуществить нажатием второй кнопки слева Макросы.

Появится окно для выбора макроса

Выбираем нужный — жмем выполнить.

Запуск макроса в Excel. Горячие клавиши

Открытие окна выбора макроса можно осуществить через горячую клавишу Alt + F8 . А зайти в окно редактирования макроса сочетанием Alt + F11.

Причем если в окне выбора выделить нужный макрос и нажать Параметры, то к макросу можно привязать сочетание клавиш.

В данным случае ctrl + Ё.

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

Зайдите в окно редактирования макроса Alt + F11 или кнопка Просмотр кода на панели Разработчик.

У вас откроется VBA. Ваш макрос (особенно записанный макрорекордером) будет храниться в отдельном отделе модулей в левой панели.

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

Копируйте тело макроса из правого окна (между Sub и End Sub)

Выберите в левой панели ЭтаКнига (двойным левым кликом).

В верхних панелях выбираем Workbook и признак включения макроса Open (открытие книги получается).

Копированный текст макроса из модуля вставляем между Private Sub и End Sub. Сохраняем. Закрываем VBA.

Готово! Запуск макроса будет происходить при открытии книги.

Не забудьте сохранить книгу с поддержкой макросов ( xlsm или xlsb ).

Дополнительные возможности запуска макроса при действии с книгой

Как вы могли увидеть при выборе Workbook в правом окне выбора доступно множество вариантов. Ниже команды, которые запускают макрос при действии с книгой:

  • Activate — при активации книги (при переходе из другого окна в эту книгу);
  • Deactivate — при переходе в другую книгу;
  • BeforeClose — перед закрытием книги;
  • BeforePrint — перед печатью книги;
  • BeforeSave — при сохранении книги;
  • NewSheet — при создании нового листа книги.

Дополнительные возможности запуска макроса при действии с листом

По аналогии с предыдущим пунктом, такие же действия можно привязать к определенному листу. Ниже команды, которые запускают макрос при действии с листом:

  • SheetActivate — при активации листа книги;
  • SheetDeactivate — при переходе на другой лист книги;
  • SheetCalculate — при пересчете формул на листе;
  • SheetBeforeDoubleClick — перед двойным кликом мыши;
  • SheetBeforeRightClick — перед кликом правой кнопкой мыши;
  • SheetChange — при изменение на листе

Если необходимо запустить макрос при изменении в ячейке — подробная инструкция есть в этой статье .

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

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

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


Ознакомимся с основными из них.

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Похожие статьи:

Комментарии (1)

А как настроить только на разовый запуск при первом открытии?

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Макрос, записанный может потребоваться автоматически выполняются при открытии конкретной книги. Пример использует следующую процедуру для показано, как это работает. Можно также запустить макрос автоматически при запуске Excel.

Прежде чем начать, убедитесь, что отображаются вкладки " Разработчик " на ленте. Подробнее читайте вкладку "Разработчик".

Чтобы использовать в приведенном ниже примере, откройте новую книгу.

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

Откройте вкладку Разработчик и щелкните элемент Visual Basic.

В левой части Проекта VBA разверните папку Проекта VBA для книги, а затем дважды щелкните модуль ЭтаКнига . Если вы не видите окно проекта, можно перейти в режим > Окно проекта или нажмите клавиши Ctrl + R.

В открывшейся в правой части окна модуля вставьте следующий код:

Вставьте код записанные в подпрограмме между строками Sub и End Sub.

Закройте Редактор Visual Basic (не нужно ничего сохранять).

Сохранение книги в виде книги Excel с поддержкой макросов (* xlsm) и закройте ее.

При открытии книги, код, добавленных на процедуры Workbook_Open будет выполняться автоматически.

Прежде чем начать, убедитесь, что отображаются вкладки " Разработчик " на ленте. Это можно сделать:

В меню выберите команду Excel > предпочтения. > ленты и панели инструментов.

В категории настроить ленту в списке Основные вкладки установите флажок Разработчик.

Нажмите кнопку Сохранить.

Чтобы использовать в приведенном ниже примере, откройте новую книгу.

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

Откройте вкладку Разработчик и щелкните элемент Visual Basic.

В левой части Проекта VBA разверните папку Проекта VBA для книги, а затем дважды щелкните модуль ЭтаКнига .

В открывшейся в правой части окна модуля вставьте следующий код:

Вставьте код записанные в подпрограмме между строками Sub и End Sub.

Закройте Редактор Visual Basic (не нужно ничего сохранять).

Сохранение книги в виде книги Excel с поддержкой макросов (* xlsm) и закройте ее.

При открытии книги, код, добавленных на процедуры Workbook_Open будет выполняться автоматически.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.