Запуск макроса

Выполнить макрос в Microsoft Excel можно несколькими способами. Макрос — это макрокоманда или набор макрокоманд, с помощью которых можно автоматизировать различные задачи. Макросы записываются на языке программирования Visual Basic для приложений. Макрос всегда можно выполнить с помощью команды Макросы на ленте. В зависимости от назначенного способа запуска макросы также можно запускать с помощью сочетания клавиши CTRL с клавишей быстрого вызова, кнопки на панели быстрого доступа или в настраиваемой группе на ленте, а также по щелчку области объекта, графического объекта или элемента управления. Кроме того, макросы можно запускать автоматически при открытии книги.

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

Перед запуском макроса

Для запуска макросов в приложении Excel необходимо изменить некоторые параметры.

  1. Если вкладка Разработчик недоступна, отобразите ее. Дополнительные сведения см. в статье Отображение вкладки "Разработчик".

  2. Для установки уровня безопасности, временно разрешающего выполнение всех макросов, выполните указанные ниже действия.

    1. На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.

      Вкладка "Разработчик" на ленте
    2. В категории Параметры макросов в группе Параметры макросов установите переключатель в положение Включить все макросы (не рекомендуется, возможен запуск опасной программы) и нажмите кнопку ОК.

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

  1. Откройте книгу, содержащую нужный макрос.

  2. На вкладке Разработчик в группе Код нажмите кнопку Макросы.

    Вкладка "Разработчик" на ленте
  3. В поле Имя макроса введите имя макроса, который нужно выполнить.

  4. Выполните одно из указанных ниже действий.

    • Для запуска макроса также можно нажать клавиши CTRL+F8. Чтобы остановить выполнение макроса, нажмите клавишу ESC.

    • Чтобы запустить макрос из модуля Microsoft Visual Basic для приложений (VBA), нажмите кнопку Изменить и в меню Run (Выполнить) выберите команду Run Sub/UserForm (Выполнить процедуру или пользовательскую форму) или нажмите клавишу F5.

  1. На вкладке Разработчик в группе Код нажмите кнопку Макросы.

    Вкладка "Разработчик" на ленте
  2. В поле Имя макроса выберите макрос, которому требуется назначить сочетание клавиши CTRL с клавишей быстрого вызова.

  3. Нажмите кнопку Параметры.

    Отобразится диалоговое окно Параметры макроса.

  4. В поле Сочетание клавиш введите любую прописную или строчную букву для использования с клавишей CTRL.

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

    Список уже заданных сочетаний с клавишей CTRL см. в статье Клавиши быстрого вызова и функциональные клавиши Excel.

  5. Введите описание макроса в поле Описание.

  6. Нажмите кнопку ОК, чтобы сохранить изменения, а затем — кнопку Отмена, чтобы закрыть диалоговое окно Макрос.

Чтобы запустить макрос с помощью кнопки на панели быстрого доступа, сначала необходимо добавить ее на панель. Сведения о том, как это сделать, см. в статье Назначение макроса кнопке.

Можно создать настраиваемую группу для отображения на вкладке ленты, а затем назначить макрос кнопке в этой группе. Например, вы можете добавить настраиваемую группу "Мои макросы" на вкладку "Разработчик", а затем добавить в эту группу макрос, который будет выглядеть как кнопка. Сведения о том, как это сделать, см. в статье Назначение макроса кнопке.

Запуск макроса щелчком области графического объекта

Можно создать на графическом объекте гиперобъект, щелчок по которому будет запускать макрос.

  1. Вставьте на лист графический объект (рисунок, картинку, фигуру или графический элемент SmartArt).

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

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

    Фигуры
  3. Щелкните созданный гиперобъект правой кнопкой мыши и выберите пункт Назначить макрос.

  4. Выполните одно из указанных ниже действий.

    • Чтобы назначить графическому объекту существующий макрос, дважды щелкните нужный макрос или введите его имя в поле Имя макроса.

    • Чтобы записать новый макрос для назначения выделенному графическому объекту, нажмите кнопку Записать, введите имя макроса в диалоговом окне Запись макроса и нажмите кнопку ОК, чтобы начать запись. Завершив запись макроса, нажмите кнопку Остановить запись Изображение кнопки на вкладке Разработчик в группе Код.

      Совет : Можно также нажать кнопку Остановить запись Изображение кнопки в левой части строки состояния.

    • Для редактирования существующего макроса щелкните его имя в поле Имя макроса, а затем нажмите кнопку Изменить.

  5. Нажмите кнопку ОК.

  6. Выделите гиперобъект на листе. Появится область Средства рисования и вкладка Формат.

  7. На вкладке Форматв группе Стили фигур щелкните стрелку рядом с командой Заливка фигуры и выберите пункт Нет заливки.

    Меню параметров цвета заливки фигуры

  8. Щелкните стрелку возле кнопки Контур фигуры и выберите вариант Нет контура.

Если макрос записан и сохранен с именем Auto_Open, он будет запускаться при каждом открытии содержащей его книги. Для автоматического запуска макроса при открытии книги также можно написать процедуру на языке VBA в событии Open книги с помощью редактора Visual Basic. Событие Open представляет собой встроенное событие книги, запускающее код макроса при каждом открытии книги.

Создание макроса Auto_Open

  1. Для сохранения макроса с конкретной книгой сначала откройте эту книгу.

  2. На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

  3. В поле Имя макроса введите Auto_Open.

  4. В списке Сохранить в выберите книгу, в которой нужно сохранить макрос.

    Совет : Если необходимо, чтобы данный макрос был всегда доступен при работе в приложении Excel, выберите вариант Личная книга макросов. При этом создается скрытая личная книга макросов Personal.xlsb (если она не существует), в которой сохраняется макрос. В Windows Vista эта книга находится в папке C:\Users\имя_пользователя\AppData\Local\Microsoft\Excel\XLStart. Если ее там нет, возможно, она была сохранена не в папке Local, а в папке Roaming. В Microsoft Windows XP эта книга находится в папке C:\Documents and Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart. Книги из этой папки автоматически открываются при каждом запуске приложения Excel. Если требуется автоматически запускать макрос из личной книги макросов в другой книге, ее также необходимо сохранить в папке XLStart, чтобы обе книги открывались при запуске приложения Excel.

  5. Нажмите кнопку ОК, а затем выполните действия, которые нужно записать.

  6. На вкладке Разработчик в группе Код нажмите кнопку Остановить запись Изображение кнопки .

    Совет : Можно также нажать кнопку Остановить запись в левой части строки состояния.

    Кнопка "Остановить запись" в строке состояния

Примечания : 

  • Если на шаге 6 было выбрано сохранение макроса в Эта книга или Новая книга, сохраните или переместите книгу в одну из папок XLStart.

  • Запись макроса "Авто_открыть" имеет следующие ограничения:

    • Если книга, в которой сохраняется макрос "Авто_открыть", уже содержит процедуру на языке VBA в событии Open, эта процедура для события Open заменит все действия макроса "Авто_открыть".

    • При открытии книги с помощью метода Open макрос "Авто_Открыть" игнорируется.

    • Макрос "Авто_открыть" запускается перед открытием других книг. Поэтому при записи действий, которые нужно выполнить в книге по умолчанию "Книга1" или в книге, загруженной из папки XLStart, такие действия макроса "Авто_открыть" при запуске приложения Excel выполнены не будут, поскольку запуск этого макроса происходит перед открытием книги по умолчанию и новой книги.

      При обнаружении этих ограничений вместо записи макроса "Авто_открыть" необходимо создать процедуру на языке VBA для события Open, как описано в следующем разделе этой статьи.

  • Чтобы предотвратить автоматическое выполнение макроса "Авто_открыть" при запуске Microsoft Excel, во время запуска удерживайте нажатой клавишу SHIFT.

Создание процедуры на языке VBA для события Open книги

В следующем примере событие Open используется для запуска макроса при открытии книги.

  1. Сохраните и закройте все открытые книги.

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

  3. На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.

  4. В окне обозревателя проектов щелкните правой кнопкой мыши объект ЭтаКнига, а затем в контекстном меню выберите команду View Code (просмотр кода).

    Совет : Если окно проекта скрыто, в меню Вид выберите пункт Окно проекта.

  5. В списке объектов, расположенном над окном кода, выберите пункт Workbook.

    Будет автоматически создана пустая процедура для события Open, похожая на следующую:

    Private Sub Workbook_Open()

    End Sub

  6. Добавьте в процедуру следующие строки кода:

    Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Лист1").Range("A1").Value = Date
    End Sub

  7. Переключитесь на приложение Excel и сохраните данную книгу как книгу с поддержкой макросов (.XLSM).

  8. Закройте и снова откройте книгу. При повторном открытии файла запускается процедура "Workbook_Open", отображающая в окне сообщения текущую дату.

  9. В окне сообщения нажмите кнопку ОК.

    Примечание : Ячейка A1 листа 1 также содержит дату, являющуюся результатом запуска процедуры Workbook_Open.

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

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

К началу страницы

См. также

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

Автоматизация задач с помощью средства записи макросов

Запись макроса для открытия определенных книг при запуске Excel

Создание и сохранение всех макросов в одной книге

Сохранение макроса

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×