Как запустить макрос в Excel

Обновлено: 04.07.2024

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

Как запустить макрос из ленты Excel

Один из самых быстрых способов выполнить VBA в Excel — запустить макрос на вкладке Разработчик. Если вы никогда раньше не имели дело с кодом VBA, вам может потребоваться сначала активировать вкладку «Разработчик». Затем сделайте следующее:

Совет. Если вкладка «Разработчик» не добавлена ​​на ленту Excel, нажмите клавиши ALT + F8, чтобы открыть диалоговое окно Макрос.

Запуск макроса с пользовательским сочетанием клавиш

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

Совет. Рекомендуется всегда использовать комбинации клавиш в верхнем регистре для макросов ( Ctrl + Shift + буква ), чтобы не переопределять сочетания клавиш Excel по умолчанию. Например, если вы назначите макросу комбинацию клавиш Ctrl + f, вы потеряете возможность вызывать диалоговое окно Найти и заменить.

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

Как запустить макрос из редактора VBA

Если вы хотите стать профессионалом в Excel, вам обязательно нужно знать, как запустить макрос не только из Excel, но и из редактора Visual Basic. Хорошая новость в том, что это намного проще, чем вы могли ожидать :)

  1. Нажмите клавиши ALT + F11, чтобы запустить редактор Visual Basic.
  2. В окне Project Explorer слева дважды щелкните модуль, содержащий ваш макрос, чтобы открыть его.
  3. В окне Код справа вы увидите все макросы, перечисленные в модуле. Поместите курсор в любое место внутри макроса, который вы хотите выполнить, и выполните одно из следующих действий:
    • В строке меню нажмите Выполнить >Выполнить подчиненную/пользовательскую форму.
    • На панели инструментов нажмите кнопку Запустить макрос (зеленый треугольник).

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

  • Нажмите F5, чтобы запустить весь код.
  • Нажмите F8, чтобы запустить каждую строку кода отдельно. Это очень полезно при тестировании и отладке макросов.

Запуск макроса из Редактор VBA

Как создать кнопку макроса в Excel

Традиционные способы запуска макросов несложны, но все же могут представлять проблему, если вы делитесь книгой с кем-то, у кого нет опыта работы с VBA — они просто не будут знать, где искать! Чтобы сделать запуск макроса действительно простым и интуитивно понятным для всех, создайте собственную кнопку макроса.

Теперь вы можете запустить макрос, нажав на его кнопку. Назначенный нами макрос форматирует выбранные ячейки, как показано на скриншоте ниже:

Совет. Вы также можете назначить макрос существующей кнопке или другим элементам управления формы, например кнопкам прокрутки или полосам прокрутки. Для этого щелкните правой кнопкой мыши элемент управления, вставленный на лист, и выберите Назначить макрос во всплывающем меню.

Создать кнопку макроса из графического объекта

К сожалению, невозможно настроить внешний вид элементов управления кнопками, из-за чего кнопка, которую мы только что создали, выглядит не очень красиво. Чтобы сделать действительно красивую макрокнопку Excel, вы можете использовать фигуры, значки, изображения, WordArt и другие объекты.

В качестве примера я покажу вам, как запустить макрос, щелкнув фигуру:

  1. На вкладке Вставка в группе Иллюстрации нажмите Фигуры и выберите нужный тип фигуры, например прямоугольник со скругленными углами:
  2. На листе щелкните место, куда вы хотите вставить объект формы.
  3. Отформатируйте кнопку-форму так, как вам нужно. Например, вы можете изменить цвета заливки и контура или использовать один из предопределенных стилей на вкладке Формат фигуры. Чтобы добавить к фигуре текст, просто дважды щелкните ее и начните вводить текст.
  4. Чтобы связать макрос с фигурой, щелкните правой кнопкой мыши объект фигуры, выберите Назначить макрос…, затем выберите нужный макрос и нажмите ОК.
  5. Запустите макрос, нажав форма

    Теперь у вас есть фигура, которая выглядит как кнопка и запускает назначенный макрос всякий раз, когда вы нажимаете на нее:

    Как добавить кнопку макроса на панель быстрого доступа

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

    1. Щелкните правой кнопкой мыши панель быстрого доступа и выберите в контекстном меню «Дополнительные команды…».
    2. В списке Выбрать команды из выберите Макросы.
    3. В списке макросов выберите тот, который вы хотите назначить кнопке, и нажмите "Добавить". Это переместит выбранный макрос в список кнопок панели быстрого доступа справа.

      На этом этапе вы можете нажать OK, чтобы сохранить изменения или выполнить еще пару настроек, описанных ниже.
    4. Если вы обнаружите, что значок, добавленный Microsoft, не подходит для вашего макроса, нажмите «Изменить», чтобы заменить значок по умолчанию другим.
    5. В появившемся диалоговом окне Изменить кнопку выберите значок для кнопки макроса. При желании вы также можете изменить Отображаемое имя, чтобы сделать его более удобным для пользователя. В отличие от имени макроса, имя кнопки может содержать пробелы.
    6. Дважды нажмите "ОК", чтобы закрыть оба диалоговых окна.
    7. Готово! Теперь у вас есть собственная кнопка Excel для запуска макроса:

      Как поместить кнопку макроса на ленту Excel

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

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

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

      1. Нажмите правой кнопкой мыши на ленту и выберите "Настроить ленту".
      2. В появившемся диалоговом окне выполните следующие действия:
        • На вкладках списка справа выберите пользовательскую группу.
        • В списке Выбрать команды из слева выберите Макросы.
        • В списке макросов выберите тот, который вы хотите добавить в группу.
        • Нажмите кнопку "Добавить".

      Например, я поместил на ленту Excel три кнопки макроса и теперь могу запускать любой из них одним нажатием кнопки:

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

      Иногда может потребоваться автоматический запуск макроса при открытии книги, например, для отображения какого-либо сообщения, запуска сценария или очистки определенного диапазона. Это можно сделать двумя способами.

      Автоматически запускать макрос с помощью события Workbook_Open

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

      1. Откройте книгу, в которой вы хотите выполнить макрос.
      2. Нажмите клавиши ALT + F11, чтобы открыть редактор Visual Basic.
      3. В Project Explorer дважды щелкните ThisWorkbook, чтобы открыть окно кода.
      4. В списке Объект над окном кода выберите Рабочая книга. Это создает пустую процедуру для события Open, к которой вы можете добавить свой собственный код, как показано на снимке экрана ниже.

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

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

      Активировать макрос при открытии книги с помощью события Auto_Open

      Еще один способ автоматического запуска макроса при открытии книги — использование события Auto_Open. В отличие от события Workbook_Open, Auto_Open() должен находиться в стандартном модуле кода, а не в ThisWorkbook.

      Вот шаги для создания такого макроса:

      1. В Проводнике проектов щелкните правой кнопкой мыши Модули и выберите Вставить >Модуль.
      2. В окне Код введите следующий код:

      Макрос запускается автоматически всякий раз, когда рабочая тетрадь открыта». ширина=

      Вот пример кода из реальной жизни, который отображает окно сообщения при открытии книги:

      Внимание! Событие Auto_Open устарело и доступно для обратной совместимости. В большинстве случаев его можно заменить событием Workbook_Open. Дополнительные сведения см. в разделе Workbook_Open и Auto_Open.

      Окно сообщения отображается каждый раз, когда вы открываете книгу». ширина=

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

      Теперь, когда вы знаете множество способов запуска макроса в Excel, вам просто нужно выбрать тот, который лучше всего подходит для ваших нужд. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

      В Excel можно создать макрос, записав его или написав код в редакторе VB.

      После создания макроса необходимо запустить его.

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

      Если вы заинтересованы в простом изучении VBA, ознакомьтесь с моим онлайн-обучением Excel VBA.

      Это руководство охватывает:

      Как запустить макрос в Excel

      Для целей этого руководства предположим, что у нас есть макрос с именем ColorCell со следующим кодом:

      Этот однострочный код заполнит ячейку A1 активного листа красным цветом.

      Теперь давайте рассмотрим различные способы запуска этого макроса в Excel.

      Запустите макрос, щелкнув фигуру

      Один из самых простых способов запустить макрос – создать кнопку на рабочем листе и щелкнуть ее, чтобы выполнить макрос.

      Это просто и интуитивно понятно.

      Преимущество этого метода заключается в том, что он делает запуск макроса очень простым и интуитивно понятным для всех. Даже если вы поделитесь книгой с кем-то, кто не знаком с VBA, он/она может просто нажать кнопку и увидеть происходящие действия (даже не зная, что происходит в бэкенде).

      Как показано ниже:

      Вот как это сделать:

      Вот оно! Теперь фигура будет работать как кнопка, и всякий раз, когда вы нажимаете на нее, она запускает назначенный макрос.

      Запуск макроса нажатием кнопки

      Хотя фигуру можно форматировать, кнопка имеет стандартный формат.

      Вот как это выглядит:

      Вы можете назначить макрос кнопке, а затем запустить макрос, просто нажав эту кнопку.

      Кнопка, вставленная с помощью этого метода, является стандартной, и вы не можете изменить формат кнопки (в отличие от фигур, где вы можете изменить практически все).

      Тем не менее, вы можете изменить текст кнопки. Для этого щелкните его правой кнопкой мыши и выберите «Редактировать текст».

      Примечание. Вы также можете назначить макрос другим интерактивным элементам управления, таким как флажок или полоса прокрутки.

      Запуск макроса с ленты (вкладка "Разработчик")

      Если в книге есть несколько макросов, вы можете просмотреть список всех макросов в диалоговом окне "Макросы". Это упрощает запуск нескольких макросов из одного места.

      Вот шаги:

      Запуск макроса из редактора VB

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

      Вот шаги:

      Как только вы это сделаете, макрос будет выполнен.

      Если у вас открыт только редактор VB (и вы не видите рабочий лист), вы можете не увидеть изменения, происходящие в рабочем листе. Вы можете свернуть экран редактора VB, а затем запустить макрос, чтобы увидеть изменения в реальном времени.

      Вам также могут понравиться следующие учебные пособия по Excel VBA:

      Подписка на электронную книгу Excel

      БЕСПЛАТНАЯ КНИГА EXCEL

      Получите электронную книгу «51 совет по Excel», чтобы резко повысить свою продуктивность и быстрее выполнять работу

      5 мыслей о «Как запустить макрос в Excel — полное пошаговое руководство»

      Есть ли способ переноса комментариев из недели в неделю

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

      Хорошо, у меня есть интересная задача. Мне нужно запустить макрос, который свяжет мои первые столбцы (A), представляющие собой раскрывающийся список должностей (5 записей), со вторым столбцом (B), который представляет собой флажки требований к навыкам (10 записей), и мой 3-й столбец (C), который представляет собой список учебных мероприятий (50 записей). Я пытаюсь выбрать должность, которая будет формировать требования к навыкам и соответствующие учебные мероприятия. В качестве примера: если выбрана должность «A2» = «навык B1», «навык B2», «навык B5» = учебные мероприятия «C4», «C7», «C18», «C21», «C37», « С45», «С49». Спасибо за помощь!

      Хорошо, у меня есть интересная задача. Мне нужно запустить макрос, который свяжет мои первые столбцы (A), представляющие собой раскрывающийся список должностей (5 записей), со вторым столбцом (B), который представляет собой флажки требований к навыкам (10 записей), и мой 3-й столбец (C), который представляет собой список учебных мероприятий (50 записей). Я пытаюсь выбрать должность, которая будет формировать требования к навыкам и соответствующие учебные мероприятия. В качестве примера: если выбрана должность «A2» = «навык B1», «навык B2», «навык B5» = учебные мероприятия «C4», «C7», «C18», «C21», «C37», « С45», «С49». Спасибо за помощь!

      Хотя запустить макрос в Excel несложно, существует множество способов его запуска. Некоторые способы предназначены для упрощения использования макросов, в то время как другие способы могут полностью изменить способ взаимодействия пользователя с вашей книгой. В этой статье мы рассмотрим некоторые очевидные способы запуска макросов, такие как элементы управления «Список макросов» и «Кнопка», а также некоторые более непонятные способы, такие как редактор VB и события.

      Во-первых: убедитесь, что макросы включены

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

      Если вы не можете запускать макросы, попробуйте выполнить следующие инструкции:

      • Сохранить книгу
      • Закройте книгу, а затем снова откройте ее.
      • Когда рабочая книга загрузится, вы увидите сообщение Предупреждение системы безопасности (см. рисунок ниже). Нажмите «Включить контент».

      RunMacro - Предупреждение системы безопасности

      Запустить макрос из списка макросов

      Список макросов доступен на вкладке "Вид". Чтобы просмотреть этот список:

      • Выберите вкладку "Вид".
      • Нажмите кнопку "Макросы", чтобы открыть список макросов.

      RunMacro - Список макросов

      • Выберите из списка макрос, который хотите запустить, и нажмите кнопку "Выполнить".

      RunMacro — запуск макроса в списке

      Вы также можете отобразить список макросов в любое время, нажав ALT+F8.

      Запуск макроса с помощью сочетания клавиш

      Вы можете назначить часто используемому макросу сочетание клавиш в виде CTRL+ или CTRL+SHIFT+ . Для этого:

      • Откройте список макросов (Просмотр >Макросы или ALT+F8)
      • Выберите макрос, к которому хотите применить ярлык.
      • Нажмите «Параметры…», чтобы открыть поддиалоговое окно «Параметры макроса».

      RunMacro - 5 - Параметры списка макросов

      • В текстовом поле в разделе «Горячая клавиша» введите одну букву и нажмите «ОК». Если удерживать клавишу SHIFT при вводе буквы, рядом с полем будет отображаться SHIFT как часть сочетания клавиш.

      RunMacro - 6 - Сокращение параметров макроса

      ПРИМЕЧАНИЕ: настоятельно рекомендуется использовать SHIFT при создании сочетания клавиш! Excel использует для себя сочетания клавиш CTRL+, например. CTRL+C для копирования или CTRL+V для сохранения. Если вы создаете ярлык макроса, используя эти или другие ярлыки Excel, вы перезапишете ярлык Excel, пока не переназначите ярлык макроса.

      Запуск макроса из редактора VB

      Макросы также можно запускать из редактора VB. Редактор VB позволяет просматривать код макроса и вносить любые необходимые изменения перед его запуском.

      Чтобы запустить макрос в редакторе VB:

      • Откройте редактор VB (вкладка "Разработчик" > Visual Basic или ALT+F11).

       RunMacro - DevTab VB Editor

      • В окне "Проект" дважды щелкните модуль, содержащий макрос, который вы хотите протестировать.
      • В окне кода модуля поместите курсор в любое место кода макроса между «Подпрограмма» и «Конец подпрограммы».
      • Нажмите кнопку "Выполнить" на панели инструментов или нажмите сочетание клавиш F5.

      RunMacro - Редактор VB

      Запуск макроса с помощью кнопки или фигуры

      Часто полезно иметь элемент управления на листе, который пользователь может щелкнуть для запуска макроса, например элемент управления "Кнопка" или фигура. Для конечных пользователей это гораздо быстрее, чем открывать списки макросов или копаться в коде макросов в редакторе VB.

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

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

      Чтобы написать код для мероприятия, вам понадобится редактор VB Editor. Например, чтобы просмотреть события для книги:

      • Откройте редактор VB (ALT+F11)
      • Дважды щелкните объект ThisWorkbook в окне проекта VB Editor.
      • Выберите «Рабочая книга» в раскрывающемся списке в левом верхнем углу окна кода.
      • Нажмите раскрывающееся меню справа, чтобы просмотреть список событий.

      RunMacro — событие рабочей книги

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

      Workbook_Open()

      Событие Workbook_Open() возникает при открытии книги. Если вы получаете предупреждение системы безопасности после открытия книги, это событие срабатывает после нажатия кнопки «Включить содержимое».

      Workbook_BeforeClose(Отменить как логическое значение)

      Workbook_BeforeClose() срабатывает, когда пользователь пытается закрыть книгу. Это происходит до того, как будут выполнены какие-либо проверки, чтобы определить, нужно ли сохранять книгу.

      Для параметра Cancel можно установить значение True, чтобы рабочая книга не закрывалась.

      Автозапуск Макрос

      Worksheet_Change(ByVal Target As Range)

      Worksheet_Change() срабатывает при изменении значения ячейки — будь то макрос, операция копирования/вставки или внешняя ссылка. Однако он не срабатывает, когда значение пересчитывается по формуле.

      Параметр Target представляет ячейки, значение которых изменилось.

      Если вы измените значение других ячеек внутри этого события, событие сработает снова. Это может вызвать бесконечный цикл. Если вам нужно изменить значения ячеек, не вызывая это событие, рассмотрите возможность сначала установить для Application.EnableEvents значение False, а затем снова установить значение True в конце процедуры обработки события.

      Worksheet_SelectionChange(ByVal Target As Range)

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

      Вы также можете активировать это событие с помощью кода, например «Диапазон («A1»). Выберите». Как и в случае с Worksheet_Change(), вы должны быть осторожны при выборе других ячеек внутри этого события, так как вы можете вызвать бесконечный цикл. Используйте Application.EnableEvents.

      Остановить работающий макрос

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

      RunMacro - Interrupted

      Нажатие "Конец" остановит макрос, а "Продолжить" возобновит его. При нажатии кнопки «Отладка» макрос откроется в редакторе VB и выделит строку кода, выполнение которой было приостановлено. (В редакторе VB вы можете остановить или возобновить выполнение макроса с помощью кнопок «Выполнить» или «Конец» на панели инструментов.)


      На вкладке "Разработчик" вы можете получить доступ к списку МАКРОСОВ, которые есть в вашей книге или в PERSONAL.XLSB. Чтобы запустить макрос в Excel, вы можете выполнить следующие шаги:

      При нажатии кнопки запуска выполняется макрос и закрывается диалоговое окно.

      2. Запуск макроса с помощью сочетания клавиш

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


      А если вы пишете макрос, вы можете определить комбинацию клавиш из списка макросов.

      3. Добавить кнопку макроса на панель быстрого доступа

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

      И у вас будет кнопка для макроса, который вы добавили.

      4. Добавить макрос в фигуру

      Допустим, у вас есть код VBA, который вам нужно часто использовать в своей работе. В этой ситуации вы можете создать кнопку и назначить ей этот макрос.

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

      5. Назначение макроса кнопке управления формой

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

      6. Открытие и закрытие книги

      Вы также можете создать макрос, который будет запускаться при открытии и закрытии книги. Это означает, что когда вы открываете или закрываете книгу, назначенный вами макрос будет выполняться. Для этого нужно использовать «auto_open» и «auto_close».

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


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

      Точно так же вы можете использовать auto_close для создания этого макроса при закрытии книги.

      7. Активация и деактивация рабочего листа

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

      И если вы хотите запускать макрос при активации рабочего листа, выберите в раскрывающемся списке пункт "Активировать" вместо "Деактивировать".

      8. Запуск макроса при изменении на листе

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

      Для этого вам, опять же, нужно ввести товар в окне кода рабочего листа и выбрать «Изменение выбора» в раскрывающемся списке.


      Private Sub Worksheet_SelectionChange(ByVal Target As Range) Range("A1").Value = "Последнее обновление:" & Format(теперь "dd-mmm-yy hh:mm:ss Am/pm") End Sub< /p>

      9. Внутри другой процедуры

      Вы можете запустить макрос из другой процедуры, используя оператор call. Используйте ключевое слово Call, а затем имя макроса.


      Когда вы запускаете макрос "markDone", он сначала запускает макрос "mystrikethrough", а затем выделяет выделение жирным шрифтом.

      10. Запланировать макрос

      Вы также можете запланировать запуск макроса в определенное время. Допустим, если вы хотите запустить макрос утром в 8:30, вы можете указать время, и мы его запустим.

      Читайте также: