VBA и макросы

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

Как назначить макрос кнопке в Excel (простое руководство)
⏱️ Время чтения: 8 минут 📊 Сложность: Средний

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

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

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

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

Sub GoodMorning()
With ActiveSheet.Range("A1")
.Value = "Доброе утро"
.Interior.Color = vbRed
End With
End Sub

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

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

Практическое обучение в Excel. Попробуй бесплатно, прямо сейчас!

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

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

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

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

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

1

Щёлкните вкладку «Вставка».

2

В группе «Иллюстрации» нажмите «Фигуры».

3

В параметрах фигур выберите «Прямоугольник». Курсор изменится на значок плюса.

4

Щёлкните в любом месте листа. Это вставит прямоугольную форму на лист.

5

Измените размер прямоугольника и отформатируйте его (при желании задайте рамку, цвет, оттенок).

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

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

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

1

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

2

В появившемся меню выберите «Назначить макрос». Откроется диалоговое окно назначения макроса.

3

В диалоговом окне «Назначить макрос» вы увидите список всех макросов в книге.

4

Щёлкните имя макроса, который вы хотите назначить этой фигуре (в этом примере — «GoodMorning»).

5

Нажмите ОК.

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

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

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

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

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

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

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

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

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

1

Щёлкните форму правой кнопкой мыши.

2

Нажмите «Форматировать фигуру».

3

На панели «Формат фигуры» выберите «Размер и свойства».

4

В разделе «Свойства» выберите «Не перемещать и не изменять размер вместе с ячейками».

5

Закройте панель (или диалоговое окно).

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

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

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

Чтобы это работало, вам понадобится вкладка «Разработчик» на ленте.

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

1

Перейдите на вкладку «Разработчик».

2

В группе «Элементы управления» нажмите «Вставить».

3

В появившихся параметрах элементов управления формы нажмите «Кнопка».

4

Щёлкните в любом месте листа. Это вставит кнопку и автоматически откроет диалоговое окно «Назначить макрос».

5

В диалоговом окне «Назначить макрос» выберите нужный макрос из списка (в этом примере — «GoodMorning»).

6

Нажмите ОК.

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

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

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

💡 Ограничение: Одним из недостатков использования кнопки управления формой является то, что вы не можете полностью контролировать форматирование — например, нельзя изменить цвет с серого на другой. Доступные параметры форматирования (шрифт, размер, выравнивание) можно найти, щёлкнув правой кнопкой мыши по кнопке и выбрав «Управление форматом».

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

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

1

Щёлкните правой кнопкой мыши по кнопке.

2

Нажмите «Управление форматом».

3

Перейдите на вкладку «Свойства».

4

Выберите «Не перемещать и не изменять размер вместе с ячейками».

5

Нажмите ОК.

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

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

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

В чём разница между Form Ctrl и ActiveX? Элементы управления формы встроены в приложение Excel, тогда как ActiveX загружается из отдельной библиотеки DLL. Это делает кнопки управления формой намного более надёжными по сравнению с кнопками ActiveX, которые иногда работают немного нестабильно и непредсказуемо.

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

1

Перейдите на вкладку «Разработчик».

2

В группе «Элементы управления» нажмите «Вставить».

3

В появившихся опциях ActiveX Controls щёлкните «Кнопка команды».

4

Щёлкните в любом месте листа. Это вставит кнопку туда, где вы щёлкнули.

5

Дважды щёлкните кнопку, и откроется редактор VB, где вы можете разместить код для кнопки ActiveX.

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

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

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

Хотите освоить Excel глубже?

Больше полезных формул, приёмов и готовых решений — на Vip Excel

Практическое обучение в Excel. Попробуй бесплатно, прямо сейчас!