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

Автор: | 01.03.2022

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

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

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

Sub GoodMorning () с ActiveSheet.Range («A1») .Value = «Доброе утро» .Interior.Color = vbRed Конец с концом Sub

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

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

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

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

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

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

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

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

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

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

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

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

это все!

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

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

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

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

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

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

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

В 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, щелкните параметр «Командная кнопка.
  • Щелкните в любом месте листа. Это вставит кнопку куда бы вы ни щелкнули.
  • Дважды щелкните кнопку, и откроется бэкэнд редактора VB, где вы можете ввести код для кнопки ActiveX.

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

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

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