Lost your password?


Хитрости »
Основные понятия (27)
Сводные таблицы и анализ данных (10)
Графики и диаграммы (5)
Работа с VB проектом (12)
Power BI и Power Query (23)
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (68)
Разное (43)
Баги и глюки Excel (5)

Как создать кнопку для вызова макроса на листе?

 

После создания макроса часто возникает вопрос: а как его теперь запустить? Можно, конечно, нажать сочетание клавиш Alt+F8 и выбрать нужный макрос, но...Во-первых это не всегда удобно, особенно если макросов больше 5-ти. Во-вторых: если файлом с макросом будут пользоваться другие люди, не умеющие всего этого делать, придется объяснять им все это, что тоже не очень здорово - многие просто будут вспоминать Вас не очень хорошими словами :-)

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

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


Кнопка элемент ActiveX
Данная кнопка считается устаревшей и не рекомендуется к использованию. Вот одна из причин, почему лично я не использую такие кнопки в своих проектах: Элементы ActiveX перестали работать или ведут себя непредсказуемо. Т.е. создав такую кнопку, можно заранее готовиться к тому, что в какой-то момент кнопка просто перестанет работать.
Однако многие все же предпочитают использовать именно её(либо не знают, что можно по-другому), даже не смотря на то, что назначить для этой кнопки макрос кому-то покажется сложнее, чем для остальных рассматриваемых в данной статье.
Как создать кнопку ActiveX:

  • В версии Excel 2007 и выше доступ к этим элементам возможен с вкладки Разработчик (Developer):
    Отобразить вкладку Разработчик (Developer) (если еще не отображена)
    Excel 2007: Параметры Excel(Excel Options)- Основные(Popular)- галочка напротив Показывать вкладку Разработчик на ленте(Show Developer Tab on Ribbon)
    Вкладка Разработчик
    Excel 2010: Файл (File)- Параметры (Options)- Настройка ленты (Customize Ribbon)- галочка напротив Разработчик (Developer)

    Теперь переходим на эту вкладку и видим команду Вставить (Insert). Жмем и у нас выпадает меню с возможностью выбрать элементы:

    В категории "Элементы ActiveX" выбираем самый первый(это серенький кирпичик). Курсор приобретет вид тоненького крестика. Теперь нам надо на листе нарисовать кнопку. Все, наша кнопка готова.
  • Для обладателей версии Excel 2003 не намного все проще. Сначала необходимо отобразить панель инструментов Элементы управления. Делается это следующим образом: правая кнопка мыши на панели меню- Настройка- вкладка Панели инструментов

    На данной панели так же выбираем серенький кирпичик и рисуем кнопку.

    Теперь осталось назначить созданной кнопке макрос. Для этого, не выходя из режима конструктора (в Excel 2007 он на вкладке Разработчик (Developer), а в Excel 2003 на панели Visual Basic -Режим конструктора), производим двойной щелчок по созданной кнопке - Excel перейдет в режим редактирования кода из интерфейса VBA и автоматом будет создана пустая процедура: Private Sub CommandButton1_Click(). CommandButton1 - это имя нашей кнопки. У Вас оно может отличаться. Теперь внутрь процедуры мы вписываем строку вызова макроса - Call Макрос1. Вместо Макрос1, естественно, имя необходимого макроса.

    Private Sub CommandButton1_Click()
        Call Макрос1
    End Sub

    А вот на этом, пожалуй, все для данного элемента.


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

Кнопка элемент управления формы
Здесь чуть проще. Для того, чтобы добавить данный элемент на лист для начала придется выполнить примерно те же действия, что и для создания кнопки ActiveX.
Для пользователей 2007 Excel и выше отобразить вкладку Разработчик (Developer) на ленте(если еще не отображена). Только выбор кнопки теперь надо делать из первой группы - Элементы управления форм.
для пользователей 2003 сначала надо добавить панель инструментов Формы: правая кнопка мыши на панели- Настройка- вкладка Панели инструментов. Жмем на первый элемент - серенький кирпичик. Рисуем. Как только Вы нарисуете кнопку появится меню с просьбой назначить макрос на кнопку(рис.1). Вы можете сделать это сразу, либо позже.


Автофигура
Для пользователей Excel 2007-2010: вкладка Вставка (Insert)-Фигуры (Shapes). Просто выбираете любую понравившуюся фигуру.
Для пользователей Excel 2003 для начала необходимо отобразить панель инструментов Рисование, как было описано выше. Там выбрать пункт Автофигуры и выбрать из категории понравившуюся фигуру.
После создания фигуры можно кликнуть по ней правой кнопкой мыши, выбрать Формат фигуры и изменить там оформление фигуры: цвет заливки, прозрачность, обводку и еще разные опции - здесь все зависит от фантазии.


Рисунок
для пользователей Excel 2007: вкладка Вставка (Insert)-Рисунок (Picture). Выбираете любой рисунок из имеющихся на компьютере.
Для пользователей 2003 сначала необходимо отобразить панель инструментов Рисование(если не отображена). Далее жмем на кнопку Добавить рисунок из файла .


как назначить макрос
Для Кнопки элемент управления формы, Автофигуры и Рисунка процедура назначения макроса совершенно одинакова: жмем правой кнопкой мыши на  элементе управления формы, фигуре или картинке - Назначить макрос.

Появится диалоговое окно выбора макросов. Выбираете нужный и жмете Ок. Все, наша кнопка готова и по её нажатии выполняется выбранный нами макрос.
рис.1

Таким же образом можно назначить макрос не только указанным элементам, но и Диаграмме, элементу Надпись, обекту WordArt, рисунку SmartArt.


Статья помогла? Поделись ссылкой с друзьями!
  Плейлист   Видеоуроки

Поиск по меткам

Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки ИП Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Росстат Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылки статистика
Обсуждение: 31 комментарий
  1. Юлия:

    спасибо)

  2. Якуб:

    Большое человеческое спасибо!!! Подробно, все понятно.

  3. Денис:

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

  4. Добрый день. А в 2003-м офисе кнопку картинкой не сделать?

  5. Александр, читайте статью внимательно. Там про все версии написано.

  6. Марина:

    В чем отличие сохранения макроса, назначенного кнопке CommandButton, от сохранения макроса, назначенного кнопке-автофигуре? Возникла проблема при переносе Книг с макросами на другой компьютер (все кнопки - автофигуры). Не рациональнее ли вместо загона с PERSONAL.xslb переделать кнопки на CommandButton?

  7. Марина, я привел примеры как можно назначить макросы. Вопрос рациональности зависит от конкретной ситуации и предпочтений пользователя.

    • Марина:

      IMHO автофигуры эстетичнее, вопрос в другом! При копировании рабочих макросов в PERSONAL.xlsb и переназначении кнопок на извлечение макросов из личной книги они начинают глючить. Ищу др. варианты

  8. Роман:

    Благодарю, помогло)

  9. Е:

    А как сделать, чтобы при повторном нажатии другой макрос запускался? Нужно чтобы при нажатиях макросы чередовались!

    • Примерно так:

      Sub ModMacro()
          Static lcall_cnt As Long
          lcall_cnt = lcall_cnt + 1
          If lcall_cnt Mod 2 Then
              Call macro1
          Else
              Call macro2
          End If
      End Sub
      Sub macro1()
          MsgBox "macro1"
      End Sub
      Sub macro2()
          MsgBox "macro2"
      End Sub
Поделитесь своим мнением

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


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Тренинги

Заказать
Юридическая информация

Использование материалов сайта

Политика Конфиденциальности

ИП Щербаков Дмитрий Валентинович
ОГРНИП: 318502700083307
ИНН: 504013350772

Наши партнеры

Перейти

Счетчики

Рейтинг@Mail.ru Яндекс.Метрика
© 2024 Excel для всех   Войти