Хотя есть много разных способов запустить макрос в 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.