Как сделать красивую кнопку макроса
Тема: Красивая кнопка с подсветкой и агентом (VBA Excel)
Опции темы
Красивая кнопка, с подсветкой и агентом
[Ссылки могут видеть только зарегистрированные пользователи. ]
на картинке у меня обычный скриншот, в движении и со звуком выглядет прикольнее
дело в том, что в VBA, трудно заставить такой объект как Shape реагировать на мышку
но можно это обойти, если поверх наложить объект ActiveX, например Image,
который ставится на передний план.
Объект Image должен быть прозрачным, там у него свойство есть Transparent
а на задний план кнопка (объект Shape с закругленными краями и градиентом)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь в событиях листа, можно указать что делать дальше:
после того как Image отреагировал на мышку, у меня кнопка ставиться наперёд
затем включается таймер который следит чтобы курсор не вышел за границы
как только выходит, опять всё возвращается в исходную позицию
Обычную подсказку, тоже не просто так прикрутить где угодно это можно сделать
не задумываясь только не в Excel-е, пришлось сделать вот что..
прикрутить гиперссылку а к ней уже можно добавить подсказку
но опять-же, при таком раскладе гиперссылка сработает, а макрос уже нет
это взаимоисключающие действия, пришлось в гиперссылке указать ту ячейку
с которой строятся координаты, так-же ловить события в рабочем листе на изменение ячейки
а уже в этом событии, программа выполняет процедуру BB_Run, которая сначало выполнит твой макрос
а потом возвратит прежний Select
Теперь это вполне симпатичная кнопка, с узнаваемым поведением,
теперь она не только подсвечивается но и может «припухать» при наведении на неё курсора
а агент, это так.. чисто эстетическое дополнение, я кстати долго выбирал,
искал различные варианты в поведении агентов, наконец нашел подходящие поведения для агента мерлина
и решил сделать их рандомными, если кликнуть на правую кнопку, и если для агента есть что сообщить
то он в одном случае станцует, а в другом случае сыграет на трубе..
ну вобщем мультиков я насмотрелся пока искал в интернете различные поведения )).
вот константа с его поведениями
ну и случайный выбор, при каждом таком клике..
В проекте есть процедура Test, которая заново пересоздаёт кнопки
и можно увидеть и проследить что делается, так-же можно ввести свои параметры
цвет, прозрачность, припухлость и тд.
При создании такой кнопки, все параметры в основном заполнятся по умолчанию
кроме стартовой ячейки, с неё будут браться координаты и привязанна гиперссылка
но так-же есть возможность устанавливать свои, и вообще авторазмер, (чтоб не мучиться)
пришлось написать килобайт параметов для обеспечения красоты ))
Вот, архив с обычным листом и с модулем BeautifulButton который всё это и обеспечивает
Скачать: [Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь в ней реализована возможность динамической записи макросов
В книге есть макрос, который добавляет события в лист.
Не просто так добавляет, а с начало удалит устаревшие процедуры,
а затем добавит
в проекте это делает процедура “BB_SetEvents”
VB Code:
Sub BB_SetEvents()
‘Добавление событий (удаление старых)
Dim j$(), s$, sheet As Worksheet, ClassName$
Set sheet = ActiveSheet
ClassName = TypeName(ActiveSheet)
теперь если выполнить общий макрос StartProg который создаёт конопки,
то не придётся дописывать события в рабочий лист самому
Но прежде чем такую возможность реализовать, убедитесь, что доверие доступа к проекту включено
В разных версиях это делается по-разному, программно на VBA, этого сделать нельзя, [Ссылки могут видеть только зарегистрированные пользователи. ]
Итак:
Excel 2010 – Файл>>Параметры>>Центр управления безопасностью>>Параметры макросов>>поставить галочку «Доверять доступ к объектной модели проектов VBA»;
Excel 2007 – Меню-Параметры Excel>>Центр управления безопасностью>>Параметры макросов>>поставить галочку «Доверять доступ к объектной модели проектов VBA»;
Excel 2003 – Сервис >> Параметры-вкладка Безопасность>>Параметры макросов>>Доверять доступ к Visual Basic Project
Причем сделать это необходимо на том ПК, на котором будет выполняться код.
новая версия: [Ссылки могут видеть только зарегистрированные пользователи. ]
Запуск макроса кнопкой
Задача: в предыдущей заметке мы рассказали, как запускать макросы клавиатурными сокращениями. Можно ли для этой цели использовать кнопки на листе?
Решение: существует множество способов запустить макрос кнопкой (рис. 1).
Рис. 1. Вы можете запустить макрос с помощью любого из этих элементов
Скачать заметку в формате Word или pdf, примеры в формате Excel (с кодом VBA)
Способ 1. Элемент управления формы Кнопка
В Excel 2007 или более поздней версии перейдите на вкладку РАЗРАБОТЧИК. В области Элементы управления кликните на кнопке Вставить, в раскрывающемся списке выберите значок Кнопка (рис. 2). Перетащите значок на лист, и нарисуйте кнопку. Когда вы закончите отрисовывать кнопку, появится диалоговое окно Назначить макрос объекту. Выберите макрос и нажмите Ok.
Рис. 2. Вставка кнопки, как элемента управления формы
Примечание. Если вы не видите вкладку РАЗАБОТЧИК, пройдите по меню ФАЙЛ –> Параметры. Перейдите на вкладку Настроить ленту, и в правой части окна Параметры Excel – Основные вкладки поставьте галочку напротив Разработчик.
Кнопка по умолчанию имеет название Кнопка 1. Чтобы изменить имя: нажмите Ctrl и кликните на кнопке (это позволит сделать кнопку активной без запуска макроса). Удалите текст с названием кнопки и наберите новое название. Вы можете изменить тип и размер шрифта, выравнивание и цвет текста. Если в будущем вы захотите изменить макрос, назначенный кнопке, кликните на ней правой кнопкой мыши и выберите опцию Назначить макрос.
Способ 2. Кнопка ActiveX
Кнопка ActiveX выглядит аналогично Кнопке Элемент управления формы. При этом Кнопка ActiveX имеет более гибкий функционал. Выполните следующие шаги, чтобы создать Кнопку ActiveX.
Перейдите на вкладку РАЗРАБОТЧИК. В области Элементы управления кликните кнопку Вставить, и в раскрывшемся списке выберите значок Кнопка (рис. 3). Нажмите на пиктограмму Кнопка и перетащите ее на рабочий лист. Обратите внимание, что вы находитесь в режиме конструктора.
Рис. 3. Вставка кнопки, как элемента ActiveX
Кликните на Кнопке правой кнопкой мыши, и выберите опцию Свойства. Появится окно Properties (свойства, рис. 4). Находим строку для заголовка – Caption. Удалите текст CommandButton3 [1] и наберите Выполнить! Кнопка ActiveX. Вы также можете заменить шрифт Arial на Calibri. Вы также можете изменить внешний вид кнопки с помощью таких свойств, как BackColor и ForeColor; можете добавить изображение на кнопку (свойство Picture) и т.д. Эти особенности делают элементы управления ActiveX намного более гибкими, чем элементы управления формы. Закройте окно свойств, кликнув на крестик в правом верхнем углу.
Рис. 4. Свойства Кнопки ActiveX
Оставаясь в режиме конструктора, кликните правой кнопкой мыши, и выберите опцию Исходный текст. Вы перейдете в окно редактора VBA в процедуру Private Sub CommandButton3_Click (рис. 5). В настоящий момент процедура не выполняет никакой код (она пустая). Обратите внимание, что код «живет» не в отдельном модуле, а в листе книги.
Рис. 5. Редактирование кода VBA, ассоциированного с Кнопкой ActiveX
Вы можете написать в процедуре любой код. Если вы хотите, чтобы клик на Кнопке ActiveX запускал один из существующих макросов, просто укажите его имя в тексте процедуры (рис. 6).
Рис. 6. Процедура Private Sub CommandButton3_Click будет исполнять макрос TestMacro
Вернитесь из редактора VBA назад на лист Excel. Выйдите из режима конструктора, кликнув на одноименную кнопку на ленте.
Примечание. Сам макрос TestMacro предельно прост. Он выводит на экран окно Макрос выполнен. При этом код макроса, как и положено, размещен в модуле VBA.
MsgBox » Макрос выполнен «
Способ 3. Любая фигура, картинка, рисунок SmartArt, Clip Art
Поместите объект на лист Excel. Щелкните правой кнопкой мыши на объекте и выберите команду Назначить макрос. В окне Назначить макрос объекту выберите макрос и нажмите Ok.
Способ 4. С помощью гиперссылки
Настройка макроса для запуска с помощью гиперссылки довольно сложна, но интересна. Для начала введите какой-нибудь текст в ячейку — например, Запуск макроса гиперссылкой. Затем на вкладке ВСТАВКА выберите команду Гиперссылка, и в окне Изменение гиперссылки введите адрес ячейки, в которой введен текст. В нашем примере – это В28. Это позволит при нажатии гиперссылки остаться в ячейке.
Рис. 7. Замкните гиперссылку саму на себя
Перейдите в редактор VBA. В окне проекта (VBAProject) найдите строку с листом Excel, на котором находится гиперссылка. В нашем примере лист называется Sheet1 (Рис. 1). Кликните на этой строке правой кнопкой мыши, и выберите команду View Code (рис. 8).
Рис. 8. Код для перехвата нажатия гиперссылки должен быть расположен на листе
Откроется панель кода для листа Sheet1 (Рис. 1). Если вы ранее выполняли действия, описанные выше в разделе Способ 2. Кнопка ActiveX для запуска макроса, то вверху окна будет размещено три строчки кода (см. рис. 6). Если вы не делали этого, окно будет пустым. В любом случае, воспользуйтесь двумя выпадающими меню в верхней части окна. В левом списке выберите Worksheet, в правом – FollowHyperlink. У вас появится заготовка процедуры Worksheet_FollowHyperlink перехватывающей событие Нажатие гиперссылки (рис. 9).
Рис. 9. Настройка заготовки кода путем выбора объекта – Worksheet и события – FollowHyperlink
Каждый раз, когда кто-то нажмет вашу гиперссылку, запустится эта процедура. Целевая переменная процедуры – ByVal Target As Hyperlink – обеспечит срабатывание процедуры только когда нажата ячейка с целевым текстом. Если на странице только одна гиперссылка, вы можете ограничиться простым кодом:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Если гиперссылок несколько, вы можете использовать свойство Target.TextToDisplay, чтобы различить гиперссылки:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.TextToDisplay
Case » Run Report 2 «
Case » Run Report 2 «
Case » Run Report 3 «
Использование гиперссылки для запуска макроса – отличный трюк, когда вы хотите переключиться между различными состояниями. Возможно, вы хотите перейти от сортировки по возрастанию к сортировке по убыванию. Следующий макрос выполняет сортировку и изменяет текст гиперссылки так, что в следующий раз будет выполняться противоположная сортировка:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.TextToDisplay
Резюме: запуск макроса кнопкой может быть выполнен с помощью элементов управления формы, элементов ActiveX, фигуры SmartArt, гиперссылки и др.
[1] В процессе написания заметки я тестировал те или иные возможности, поэтому моя кнопка имеет номер 3. Если вы выполняете операцию создания Кнопки ActiveX впервые, ваша Кнопка будет иметь имя CommandButton1
1 комментарий для “Запуск макроса кнопкой”
А как сделать кнопку в таблице что бы просто при клике выходить на определенный адрес в интернете?
Как создавать макросы?
Макросы — это последовательности событий (например, нажатий клавиш, щелчков мышью и задержек), которые можно воспроизводить для выполнения повторяющихся задач. Их также можно использовать для воспроизведения последовательностей, занимающих много времени или трудных для выполнения. Вы можете назначить клавише или кнопке мыши макрос, записанный в приложении Microsoft Mouse and Keyboard Center. Вы также можете использовать функцию повторения макроса, чтобы непрерывно воспроизводить и повторять макрос, а затем остановить воспроизведение в любой момент.
Макросы Microsoft Mouse and Keyboard Center сохраняются в виде отдельных файлов с расширением MHM в стандартной вложенной папке «Документы\Оборудование Майкрософт\Макросы». Макросы, записанные на клавиатуре и мыши, являются взаимозаменяемыми. Вы можете запускать и редактировать их в любой программе.
Внимание: Не сохраняйте в макросах пароли и другие конфиденциальные сведения.
Используя мышь, которую требуется настроить, запустите программу Microsoft Mouse and Keyboard Center.
В списке для нужной кнопки выберите Макрос.
Нажмите Создать макрос.
Создается пустой макрос, который добавляется в список макросов.
В поле Имя введите имя нового макроса.
Нажмите поле Редактор и введите макрос.
Вы можете записывать события, такие как нажатие клавиш, щелчок мышью и задержки между действиями. Невозможно записывать движения мыши и другие действия, которые выполняются через макросы, назначенные поддерживающим эту функцию клавишам.
Убедитесь, что новый макрос выбран в списке Доступные макросы.
Запись нескольких событий одновременно
Введите первое событие (например, нажмите клавишу SHIFT).
Щелкните выбранное событие правой кнопкой мыши и выберите пункт Разделить. Событие будет разделено на три события: нажатие и удержание клавиши, временную задержку и отпускание клавиши.
Щелкните другое событие (до или после задержки).
Введите второе событие (например, нажмите первую кнопку мыши).
Изменение существующего макроса
Используя мышь, которую требуется настроить, запустите программу Microsoft Mouse and Keyboard Center.
В списке для нужной кнопки выберите Макрос.
Выберите нужный макрос в списке Доступные макросы.
Нажмите поле Редактор и измените макрос или введите новые события.
Воспроизведение макроса
Нажмите кнопку, назначенную макросу.
Отмена макроса во время воспроизведения
Снова нажмите кнопку, назначенную макросу, или запустите другой макрос
Включение повторения макроса
В редакторе макросов выберите макрос в списке Доступные макросы.
Нажмите значок Изменить макрос.
Включите параметр Повторять.
Примечания: Функция повторения макросов не поддерживает переключение между приложениями. Например, если открыть веб-браузер во время повторения макроса в игре, макрос перестанет повторяться. Аналогично, если включить в макрос команду переключения на другое приложение, то повторение макроса не сработает, и он будет выполнен только один раз.
Если нажать кнопку, назначенную для запуска повторяющегося макроса, а затем — кнопку, назначенную другому макросу, то повторяющийся макрос остановится.
При повторении макроса не добавляется временная задержка в конце последовательности. Чтобы добавить задержку, используйте поле «Редактор».
Включение и выключение повторяющегося макроса
Включив повторение макроса, нажмите назначенную ему клавишу, чтобы запустить макрос.
Снова нажмите эту кнопку, чтобы остановить повторение макроса.
Кроме того, чтобы остановить повторяющийся макрос и запустить другой макрос, нажмите клавишу, назначенную для другого макроса.
Как сделать плавающую кнопку в excel?
Excel является комплексным табличным процессором, перед которым пользователи ставят самые разнообразные задачи. Одной из таких задач является создание кнопки на листе, нажатие на которую запускало бы определенный процесс. Данная проблема вполне решаема с помощью инструментария Эксель. Давайте разберемся, какими способами можно создать подобный объект в этой программе.
Процедура создания
Как правило, подобная кнопка призвана выступать в качестве ссылки, инструмента для запуска процесса, макроса и т.п. Хотя в некоторых случаях, данный объект может являться просто геометрической фигурой, и кроме визуальных целей не нести никакой пользы. Данный вариант, впрочем, встречается довольно редко.
Способ 1: автофигура
Прежде всего, рассмотрим, как создать кнопку из набора встроенных фигур Excel.
Теперь при клике по созданному нами объекту будет осуществляться перемещение на выбранный лист документа.
Урок: Как сделать или удалить гиперссылки в Excel
Способ 2: стороннее изображение
В качестве кнопки можно также использовать сторонний рисунок.
Теперь при нажатии на объект будет запускаться выбранный макрос.
Урок: Как создать макрос в Excel
Способ 3: элемент ActiveX
Наиболее функциональной кнопку получится создать в том случае, если за её первооснову брать элемент ActiveX. Посмотрим, как это делается на практике.
Теперь макрос будет привязан к объекту.
Способ 4: элементы управления формы
Следующий способ очень похож по технологии выполнения на предыдущий вариант. Он представляет собой добавление кнопки через элемент управления формы. Для использования этого метода также требуется включение режима разработчика.
Как видим, в Экселе создать функциональную кнопку не так сложно, как это может показаться неопытному пользователю. К тому же данную процедуру можно выполнить с помощью четырех различных способов на свое усмотрение.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
В Excel есть инструмент, который позволяет быстро настраивать основные параметры форматирования для вставленных строк, столбцов или ячеек. Когда Вы вставляете любой из этих элементов, рядом появляется небольшая плавающая кнопка Параметры вставки.
На кнопке изображена небольшая кисть. При нажатии на неё появляется набор инструментов для быстрого форматирования вставленной строки, столбца или ячейки. Часто это очень удобно, но иногда кнопка мешает и даже раздражает. Однако, отключить её очень просто.
Чтобы отключить кнопку Параметры вставки, откройте вкладку Файл (File).
В меню слева нажмите Параметры (Options).
В левой части диалогового окна Параметры Excel (Excel Options) нажмите Дополнительно (Advanced).
В разделе Вырезание, копирование и вставка (Cut, copy, and paste) поставьте галочку напротив параметра Отображать кнопку параметров вставки при вставке содержимого (Show Insert Options buttons).
Нажмите ОК, чтобы сохранить изменения и закрыть диалоговое окно Параметры Excel (Excel Options).
После отключения кнопки Параметры вставки, Вы по-прежнему сможете форматировать вставленную строку, столбец или ячейку. Просто выделите её и кликните по ней правой кнопкой мыши. Вместе с контекстным меню появится мини-панель инструментов. При помощи мини-панели инструментов Вы сможете настроить основные параметры форматирования, а контекстное меню даёт доступ к различным операциям над выделенным элементом.
Если Вы отключите кнопку Параметры вставки, когда она уже появится возле только что вставленной строки, столбца или ячейки, то эта кнопка останется на своём месте. В следующий раз, когда Вы вставите строку, столбец или ячейку, кнопка Параметры вставки уже не появится.
Урок подготовлен для Вас командой сайта office-guru.ru
Источник:/> Перевел: Антон Андронов
Правила перепечаткиЕще больше уроков по Microsoft Excel
Оцените качество статьи. Нам важно ваше мнение:
Кнопка в Excel как ссылка на ячейку, какой-либо инструмент, созданный макрос значительно упрощает работу в программе. Чаще всего это графический объект с назначенным макросом или гиперссылкой. Рассмотрим, как сделать такую кнопку.
Как сделать кнопку на листе Excel
Суть работы: создать графический объект и назначить для него макрос или гиперссылку. Рассмотрим подробнее.
Способы создания графического объекта:
Графический объект создан. Теперь нужно сделать его «рабочим».
Как в Excel сделать кнопку с макросом
К примеру, написали макрос для выполнения определенной задачи. Чтобы запускать его, нужно каждый раз заходить в меню «Разработчик». Что неудобно. Гораздо проще создать «рабочую» кнопку.
Если мы использовали элемент ActiveX, то:
Для других графических объектов макрос назначается так же. Процедура еще проще. Нужно щелкнуть правой кнопкой мыши по нарисованной кнопке или картинке и выбрать инструмент «Назначить макрос».
Другие варианты использования кнопок
С помощью кнопок в Excel можно не только выполнять созданные макросы, но и переходить в определенную ячейку, другой документ, на другой лист. Рассмотрим подробнее.
Нарисуем графический объект и выделим его. На вкладке «Вставка» найдем кнопку «Гиперссылка».
После нажатия открывается окно для создания связи кнопки с файлом, веб-страницей, электронной почтой, новым документом, местом в текущем документе.
Достаточно выбрать необходимый вариант и прописать к нему путь. Этот способ не требует написания макросов и предоставляет пользователю широкие возможности.
Подобные задачи можно выполнять и с помощью макросов. Например, чтобы при нажатии, пользователь попадал в определенную ячейку (М6), прописываем следующий код:
Sub Макрос 1()
Range(«M6»).Select
End Sub
Точно так же можно назначить макрос диаграмме, объектам WordArt, SmartAtr.
Как сделать кнопку сортировки в Excel для таблиц
Для показательного примера создайте тестовую таблицу как на рисунке:
Все теперь достаточно только кликнуть по заголовку и таблица отсортирует данные относительно определенного столбца. Для удобства столбец «Наименование» Макрос1 сортирует по возрастанию благодаря параметру Order:=xlAscending. Во всех остальных столбцах присвоены макросы (2,3,4) с параметром Order:=xlDescending, который задает тип сортировки по убыванию. Чтобы видно было, в каком месяце было больше продано товара.
Скачать пример кнопки сортировки
Примечание. Такие простые макросы можно создать в автоматическом режиме без программирования или без написания VBA-кода, с помощью инструмента «Запись макроса».
Табличный процессор Excel вмещает в себя огромное количество опций и функций, не исключая даже возможность создания кнопки. На первый взгляд абсолютно ненужный элемент некоторым пользователям может быть просто необходим. В этой статье будет рассказано, как сделать кнопку в Excel и привязать ее к ячейке.
Автофигура
Если перед вами не стоит задача создания оригинальной кнопки и вы не хотите заморачиваться над сложным ее оформлением то проще всего сделать ее, используя стандартный набор инструментов в программе. Такая кнопка будет служить своеобразной гиперссылкой для перехода на другие внутренние или внешние элементы. Ну, а теперь перейдем непосредственно к инструкции, как в Excel сделать кнопку:
После изменения размера и установки в ячейку нашей своеобразной кнопке можно задать действие, которое будет происходить после нажатия.
На этом создание кнопки первым способом закончено. Теперь после нажатия по ней вы будете переходить на другой лист в документе. Если же вы столкнулись с какими-либо трудностями или же этот метод просто вам не подошел, тогда перейдите ко второму способу, как в Excel сделать кнопку.
Собственное изображение
Если вы думаете, что создавать кнопку можно только из штатных элементов и из действий можно назначать лишь гиперссылку, то вы глубоко заблуждаетесь. Сейчас будет рассказано, как сделать кнопку в Excel для запуска макроса, при том кнопка будет не обычной, а в виде изображения, которое можно загрузить из интернета:
После этого интерактивная кнопка будет создана, соответственно, на нее вы можете назначить и гиперссылку, как это было показано в первом способе.
Элемент ActiveX
Мы уже разобрали два способа, как сделать кнопку в Excel, перейдем к третьему, который кардинально отличается от предыдущих:
Теперь после нажатия на кнопку будет выполняться тот макрос, который вы указали. Теперь вы знаете все три способа, как сделать кнопку в Excel.
Заключение
Вот мы и рассмотрели три способа, как в Excel сделать активные кнопки. Как можно заметить, каждый из них в значительной мере отличается друг от друга, поэтому, ознакомившись с каждым из них, вы сможете подобрать для себя самый оптимальный.