Как привязать макрос к ячейке Excel

Обновлено: 05.07.2024

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

Уровень квалификации: средний

Загрузить файл Excel

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

Создать макрос кнопок.xlsm (33,1 КБ)

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

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

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

Кристен, участница нашего курса VBA Pro, любит добавлять кнопки в свои электронные таблицы по этой причине.

Нажмите здесь, чтобы услышать историю Кристен об изучении VBA

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

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

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

3 типа макрокнопок для рабочих листов

В этом посте я объясню три разных типа кнопок, которые можно разместить на листе.

  1. Фигуры
  2. Кнопки управления формой
  3. Кнопки управления ActiveX

Начнем с моего любимого…

1. Использование фигур для создания макрокнопок

По моему мнению, лучший способ создания макрокнопок — это использование фигур. Фигуры предоставляют нам больше возможностей для оформления/форматирования, и мы можем сделать их похожими на кнопки, которые вы нажимаете каждый день на современных веб-страницах.

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

<р>1. Нарисуйте фигуру на листе (вкладка «Вставка» > раскрывающийся список «Фигуры» > «Прямоугольник»).

<р>2. Добавьте текст в фигуру (щелкните правой кнопкой мыши > Изменить текст | или дважды щелкните фигуру).

<р>3. Назначьте макрос (щелкните правой кнопкой мыши границу фигуры > Назначить макрос...)

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

<р>4. Выберите макрос из списка. Важно отметить, что макрос должен быть выбран из списка Эта книга, чтобы при совместном использовании книги с другими пользователями макрос также был доступен.

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

<р>5. Нажмите ОК.

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

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

Вот оно! Вот как вы назначаете макрос кнопке, которую вы создали прямо на листе.

Изменение кнопки

Если вам нужно выбрать фигуру, чтобы изменить ее внешний вид или переместить, нажмите и удерживайте клавишу Ctrl. Это предотвратит запуск макроса и позволит вам изменить форму. Excel предлагает множество параметров на вкладке «Формат» для изменения стиля фигуры, эффектов формы, цвета или размера шрифта и т. д.

Предотвращение изменения размера кнопки при изменении ячейки

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

Сначала просто щелкните правой кнопкой мыши кнопку и выберите "Размер и свойства..."

Откроется панель Формат фигуры. В разделе «Свойства» есть варианты, которые вы можете выбрать в зависимости от того, хотите ли вы, чтобы кнопка перемещалась или изменяла ее размер при внесении изменений в ваш лист.

Формат панели формы с параметры, чтобы кнопка макроса оставалась статической

2. Использование элементов управления формы для создания кнопок макросов

Следующий вариант для кнопок макросов – элементы управления формой. По сути, они одинаковы с точки зрения настройки.

Разница между элементами управления и фигурами заключается в стиле.

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

Мы также не можем изменить цвет кнопки. Единственными параметрами форматирования являются тип, размер и цвет шрифта.

Вставить кнопку управления формой

Чтобы добавить кнопку управления формой, просто перейдите на вкладку "Разработчик" и нажмите кнопку "Вставить". В раскрывающемся списке представлены параметры в разделе «Элементы управления формой».

Меню управления формой можно использовать для создания макрокнопок

3. Использование элементов управления ActiveX для кнопок макросов

Последний вариант — кнопки управления ActiveX.

Можно использовать меню ActiveX для создания макрокнопок

Кнопки управления ActiveX имеют больше параметров форматирования, и вы можете изменить цвет кнопки.

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

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

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

Размещение кнопок на ленте или панели инструментов

Еще один вариант – разместить кнопки макроса на любой из вкладок ленты Excel или панели быстрого доступа.

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

Похожие руководства

У меня есть еще пара сообщений на эту тему. Потратьте несколько минут, чтобы взглянуть на них!

Заключение

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

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

В 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». Спасибо за помощь!

Выполнение макросов на листе очень помогает. Вы можете автоматизировать так много вещей с помощью VBA, что на эту тему написано бесчисленное количество книг. Однако не всегда так просто запустить макрос. Ваши пользователи могут не знать, как запускать макрос, и вы хотите, чтобы ваши пользователи могли легко выполнять свою работу. Было бы здорово иметь кнопку на листе, и вы могли бы сказать своим пользователям: «Просто нажмите на это, и то-то и то-то будет сделано автоматически»?

Об этом весь пост. Приступим.

Назначение макроса простой кнопке

Для начала вам необходимо включить вкладку "Разработчик". Нажмите здесь, чтобы узнать больше об этом.

Это будет наш простой макрос, который будет запускаться при нажатии на кнопку.

Поскольку у нас включена вкладка "Разработчик", мы можем создать кнопку и назначить ее макросу:

  • На вкладке "Разработчик" ленты просто нажмите кнопку (в Windows нажмите "Вставить", а затем в разделе "Элементы управления формой" нажмите кнопку).
  • Затем нажмите на рабочий лист, чтобы добавить кнопку.
  • Затем Excel попросит вас назначить его макросу. Используйте макрос WriteHello, который мы поместили в наш VBE.
  • Кнопка перейдет в режим редактирования. Здесь вы можете изменить текст внутри него. Сделайте текст таким, какой вам нравится. Вы также можете изменить размер кнопки, пока она находится в режиме редактирования.
  • Затем нажмите лист вне кнопки, чтобы вывести его из режима редактирования. Теперь вы можете нажать на кнопку и запустить макрос!

Вот анимированный gif, чтобы проиллюстрировать это:

Эта статья поможет вам? Если да, поддержите меня чашечкой кофе ☕️

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

Теперь, когда у нас есть основная идея, давайте добавим стиль к нашему рабочему листу. Использование кнопки на вкладке «Разработчик» — не единственный способ запустить макрос с помощью кнопки. Вы также можете использовать фигуры Excel!

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

  • Нажмите на вкладку "Вставка" на ленте.
  • Нажмите "Фигуры".
  • Выберите фигуру (я использовал прямоугольник со скругленными углами)
  • Нажмите и перетащите лист, чтобы задать размер фигуры.
  • Затем вы можете написать какой-нибудь текст. Вы также можете отформатировать этот текст, выделив его, перейдя на вкладку "Главная" и отрегулировав размер текста, выравнивание по центру и центрирование по вертикали.
  • Затем щелкните фигуру правой кнопкой мыши и выберите "Назначить макрос".
  • Выберите макрос, который мы написали.
  • Затем нажмите на рабочий лист, чтобы вывести фигуру из режима редактирования.
  • Теперь вы можете щелкнуть фигуру (теперь это кнопка) и запустить макрос!

Вот анимированный gif, чтобы показать больше деталей:

Изменение назначенного макроса

Чтобы изменить макрос, назначенный кнопке, просто щелкните ее правой кнопкой мыши и выберите "Назначить макрос". Оттуда вы можете выбрать новый макрос для использования.

Удаление кнопки

Чтобы удалить кнопку, нужно вернуть ее в режим редактирования. Для этого щелкните правой кнопкой мыши на кнопке. Когда вы это сделаете, появится контекстное меню. Вы можете вернуться к рабочему листу (но НЕ дважды!), и вы все еще будете в режиме редактирования. Отсюда вы можете нажать клавишу Delete на клавиатуре, и она удалит кнопку.

Вау, вы прочитали всю статью! Вы знаете, люди, которые заходят так далеко, являются настоящими учениками. И очевидно, вы цените обучение. Хотите узнать больше об Excel? Пожалуйста, поддержите меня, купив мне кофе (чтобы написать эти статьи, нужно много кофе!).

Иногда мы создаем макрос, но не хотим запускать его, запуская макрос через меню Разработчик->Выполнить макрос или другие сочетания клавиш. Мы можем установить триггер, щелкнув определенную ячейку, например, щелкнув A1 или E1. Как только мы нажмем на конкретную ячейку A1 или E1, макрос запустится правильно, это выглядит удобным. Итак, в этой статье мы поможем вам запустить макрос, щелкнув ячейку через VBA.

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

Мы создаем таблицу с двумя разными типами диаграмм. Смотрите скриншот ниже.

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

Отредактируйте сценарий VBA, чтобы удалить все диаграммы для текущего рабочего листа. См. сценарий VBA ниже. Имя макроса — «DeleteAllCharts». Теперь давайте начнем узнавать, как запускать макрос для определенной ячейки.

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

Активировать макрос, щелкнув определенную ячейку в Excel

Шаг 1. Щелкните правой кнопкой мыши Лист1, чтобы открыть меню управления листами. Выберите Просмотреть код, появится окно Microsoft Visual Basic для приложений.

Или вы можете войти в окно Microsoft Visual Basic для приложений, выбрав Developer->Visual Basic.

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

Шаг 2. В окне Microsoft Visual Basic для приложений щелкните Лист1 и введите приведенный ниже код:

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

Шаг 3. Сохраните коды, см. снимок экрана ниже. Затем закройте Microsoft Visual Basic для приложений.

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

Шаг 4. Нажмите D2. Убедитесь, что все диаграммы удалены правильно. Это означает, что макрос правильно запускается ячейкой D2. Вы можете добавить некоторые описания в D2 для демонстрации, вы также можете оставить D2 пустым, он также работает нормально, если вы нажмете на ячейку D2 без ввода какого-либо значения.

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

В этом посте рассказывается, как найти и заменить сразу несколько значений с помощью макроса VBA или формулы в Excel. Как сделать множественный поиск и замену в Excel. Предположим, что у вас есть несколько ячеек, содержащих .

макрос vba для просмотра с другого листа1

 вставить комментарии в защищенную рабочую таблицу3

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

 преобразовать текст в верхний регистр1

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

скрыть все другая строка1

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

 отключить сохранение как приглашение1

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

подсчет ячеек, содержащих четные числа5

В этом посте рассказывается, как подсчитать количество ячеек, содержащих нечетные или четные числа в диапазоне ячеек, с помощью формулы в Excel 2013/2016. Как подсчитать ячейки, содержащие нечетные числа, с помощью .

В этом посте рассказывается, как подсчитать количество ячеек, содержащих отрицательные числа в диапазоне ячеек, с помощью формулы в Excel 2013/2016. Вы можете подсчитать количество отрицательных чисел в своих данных с помощью простых функций.

количество непустых непустых ячеек5

В этом сообщении вы узнаете, как подсчитать количество ячеек, которые не пусты или не пусты, в ячейках заданного диапазона, используя формулу в Excel 2013/2016. Как подсчитать количество ячеек, которые не являются пустыми в определенном диапазоне .

количество ячеек не равно x или y2

В этом посте вы узнаете, как подсчитать количество ячеек, не соответствующих критериям X или Y в ячейках заданного диапазона, используя формулу в Excel 2013/2016. Вы можете легко подсчитать ячейки, равные или не равные .

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