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

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

Для целей этого руководства я буду использовать приведенный ниже макрокод VBA (который просто выбирает ячейку A1 на активном листе, вводит в нее текст «Good Morning» и окрашивает ее в красный цвет).

Sub GoodMorning()
With ActiveSheet.Range("A1")
.Value = "Good Morning"
.Interior.Color = vbRed
End With
End Sub

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

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

Вставьте фигуру и назначьте ей макрос

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

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

А поскольку это форма, вы можете легко отформатировать ее, чтобы она идеально сочеталась с существующим форматированием или фирменными цветами.

Ниже приведены шаги по вставке фигуры в Excel:

  • Щелкните вкладку Вставка
  • В группе иллюстраций нажмите Фигуры
  • В параметрах фигур выберите параметр «Прямоугольник». Вы заметите, что ваш курсор изменится на значок плюса
  • Щелкните в любом месте листа. Это вставит прямоугольную форму на лист.
  • Измените размер прямоугольника и отформатируйте его (при желании задайте рамку, цвет, оттенок).

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

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

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

  • Щелкните правой кнопкой мыши фигуру, которой вы хотите назначить макрос
  • В появившемся меню выберите «Назначить макрос». Откроется диалоговое окно назначения макроса.
  • В диалоговом окне «Назначить макрос» вы увидите список всех макросов, имеющихся в книге.
  • Щелкните имя макроса, который вы хотите назначить этой фигуре. В этом примере я нажму на макрос под названием GoodMorning
  • Нажмите на ОК

Вот и все!

Выбранный макрос теперь назначен фигуре.

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

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

Вы можете ввести любой текст внутри фигуры, чтобы сделать его более интуитивно понятным (например, «Щелкните здесь, чтобы запустить макрос»). Сделать это. щелкните фигуру правой кнопкой мыши и выберите «Редактировать текст». Теперь вы можете вводить текст в форме текстового поля.

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

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

Сохранение формы видимой при скрытии / изменении размера строк / столбцов

В Excel, когда вы вставляете фигуру, она располагается над ячейками — как диаграмма / объект.

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

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

Если вы не хотите, чтобы это произошло, выполните следующие действия:

  • Щелкните форму правой кнопкой мыши
  • Нажмите «Форматировать фигуру».
  • На панели «Формат фигуры» (или в диалоговом окне, если вы используете Excel 2010 или более ранние версии) выберите «Размер и свойства».
  • В параметрах свойств выберите параметр — «Не перемещать и не изменять размер вместе с ячейками».
  • Закройте панель (или диалоговое окно)

Теперь, когда вы изменяете размер строк / столбцов или скрываете их, форма останется на своем месте.

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

Если вас не слишком интересует форматирование кнопки и вас устраивает обычная серая кнопка, вы можете быстро вставить ее из элемента управления формы (или элемента управления ActiveX, как показано ниже), а затем назначить ему макрос.

Чтобы это работало, вам понадобится вкладка Разработчик на ленте. Если у вас его нет, вот подробное пошаговое руководство по размещению вкладки разработчика на ленте Excel.

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

  • Перейдите на вкладку «Разработчик».
  • В группе Control нажмите Insert.
  • В появившихся параметрах в параметрах элементов управления формы нажмите кнопку (элемент управления формой).
  • Щелкните в любом месте листа. Это вставит кнопку в любое место, где вы щелкнете, и автоматически откроет диалоговое окно «Назначить макрос».
  • В диалоговом окне «Назначить макрос» вы увидите список всех макросов, имеющихся в книге.
  • Щелкните имя макроса, который вы хотите назначить этой кнопке. В этом примере я нажимаю на макрос под названием GoodMorning.
  • Нажмите на ОК

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

По умолчанию это будет небольшая кнопка с написанным на ней текстом, например «Кнопка». Вы можете изменить текст на все, что захотите, а также можете изменить форму кнопки (перетаскивая края).

Поскольку это объект, который помещается на лист (как фигуры / диаграммы EXCEL), вы можете перетащить его в любое место на листе.

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

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

Вы получаете эти параметры форматирования кнопки, когда вы щелкаете правой кнопкой мыши по кнопке, а затем нажимаете «Управление форматом».

Откроется диалоговое окно «Управление форматом», в котором вы можете изменить тип / цвет шрифта, размер, выравнивание и т. Д.

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

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

  • Щелкните правой кнопкой мыши по кнопке
  • Нажмите на Управление форматом
  • Перейдите на вкладку «Свойства».
  • Выберите вариант — «Не перемещать и не изменять размер вместе с ячейками».
  • Нажмите ОК

Назначение макроса кнопке управления ActiveX

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

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

Хотите знать, почему у нас есть два разных типа кнопок — Form Control и ActiveX? В то время как элементы управления формы встроены в приложение Excel, ActiveX загружается из отдельной библиотеки DLL (библиотеки динамической компоновки). Это делает кнопки управления формой намного более надежными и надежными по сравнению с кнопками ActiveX. Вы можете узнать больше об этой разнице здесь, в сообщении в StackOverflow.

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

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

  • Перейдите на вкладку «Разработчик».
  • В группе Control нажмите Insert.
  • В появившихся опциях в опциях ActiveX Controls щелкните опцию Command Button.
  • Щелкните в любом месте листа. Это вставит кнопку куда бы вы ни щелкнули.
  • Дважды щелкните кнопку, и откроется бэкэнд редактора VB, где вы можете разместить код для кнопки ActiveX.

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

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

Другой вариант, который вы можете рассмотреть (при работе с кнопками / фигурами и назначении им макросов), — это добавить макрос на панель быстрого доступа. Таким образом, вы можете запустить макрос одним щелчком мыши, и он всегда будет виден в QAT.

Надеюсь, вы нашли этот урок полезным.

Как назначить макрос кнопке в Excel (простое руководство)