Как создать кнопку для вызова макроса на листе?
После создания макроса часто возникает вопрос: а как его теперь запустить? Можно, конечно, нажать сочетание клавиш Alt+F8 и выбрать нужный макрос, но...Во-первых это не всегда удобно, особенно если макросов больше 5-ти. Во-вторых: если файлом с макросом будут пользоваться другие люди, не умеющие всего этого делать, придется объяснять им все это, что тоже не очень здорово - многие просто будут вспоминать Вас не очень хорошими словами :-)
Но к нашему общему счастью в Excel есть замечательная возможность создавать элементы, с помощью которых можно вызвать макрос просто нажатием на них. Кроме того это можно сделать еще и красиво. В данной статье я опишу как можно сделать красивые и не очень кнопки на листе для вызова имеющихся у Вас макросов.
Итак, ниже на рисунке Вы можете видеть четыре варианта кнопочек для вызова макроса.
Данная кнопка считается устаревшей и не рекомендуется к использованию. Вот одна из причин, почему лично я не использую такие кнопки в своих проектах: Элементы 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.
После создания фигуры можно кликнуть по ней правой кнопкой мыши, выбрать Формат фигуры и изменить там оформление фигуры: цвет заливки, прозрачность, обводку и еще разные опции - здесь все зависит от фантазии.
.
Для Кнопки элемент управления формы, Автофигуры и Рисунка процедура назначения макроса совершенно одинакова: жмем правой кнопкой мыши на элементе управления формы, фигуре или картинке - Назначить макрос.
Появится диалоговое окно выбора макросов. Выбираете нужный и жмете Ок. Все, наша кнопка готова и по её нажатии выполняется выбранный нами макрос.
рис.1
Таким же образом можно назначить макрос не только указанным элементам, но и Диаграмме, элементу Надпись, обекту WordArt, рисунку SmartArt.
Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам
Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки ИП Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Росстат Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылки статистикаКомментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум
Хорошо, Дмитрий, я с Вами согласен. И спорить не собирался, а просил помощи. Статью Вашу обязательно изучу, надеюсь она мне поможет. Благодарю Вас.
Здравствуйте, Дмитрий! Большое спасибо за статью! Теперь знаю, что кнопке макроса можно придать любой вид.
У меня есть вопрос.
Обычные макросы я добавляю на панель быстрого доступа (Excel 2007). Нашла в настройках, как придать им разный вид, что бы быстрее ориентироваться, но предоставленных иконок мало. А можно ли созданный макрос, как Вы описываете (например, вставленная картинка или фигура) тоже добавить на эту панель? Что бы они были на любом открываемом документе не на листе, а на панели быстрого доступа.
спасибо=))
Здравствуйте, скажите пожалуйста а можно тоже самое в Word е делать и как?
Дмитрий, доброго времени суток! Вопрос "наоборот". В книге 6 кнопок, для каждой из которых написан соответствующий макрос. При назначении макроса на одну из кнопок что-то сделал неправильно и при нажатии на эту кнопку на листе "нажимаются" (моргают) остальные 5 графических кнопок. Как отключить макрос от кнопки? Что было сделано неправильно?
Отключить макрос: для начала неплохо бы знать как созданы кннопки. Я не телепат, чтобы знать какой тип кнопок у Вас, а угадывать желания совершенно нет. В общем случае для фигур и элементов управления формы так же, как и вешаете. жмем правой кнопкой мыши на элементе управления формы, фигуре или картинке — Назначить макрос. Просто удаляете все из поля с имененм процедуры и все.
А что сделано неправильно - это опять к экстрасенсам. Чтобы это понять необходимо знать, что было сделано вообще.
Никак. Используй надстройки (можешь создать свою панель, щёлкнув ПКМ на главном меню, затем из списка на неё вытащи макрос)
Дмитрий добрый день. Ваша статья оказалась для меня очень полезной. Но помере написания макроса возник вопрос. Как сделать так, чтобы при выполнении макроса дата в одной и ячеек менялась ровно на 1 год вперед? Заранее спасибо.
И еще вопрос. Можно ли как-то сохранить макрос в книге при сохранении самой книги в формате *.xlsx? У меня при сохранении выдает запрос о необходимости сохранения книги ф формате, поддерживающем макросы т.е. *.xlsxm?
Руслан, для подобных вопросов естьФорум .