Как сделать кнопку для макроса

Запуск макроса кнопкой

Задача: в предыдущей заметке мы рассказали, как запускать макросы клавиатурными сокращениями. Можно ли для этой цели использовать кнопки на листе?

Решение: существует множество способов запустить макрос кнопкой (рис. 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 комментарий для “Запуск макроса кнопкой”

А как сделать кнопку в таблице что бы просто при клике выходить на определенный адрес в интернете?

Источник

Как записать макрос в Excel? Пошаговая инструкция.

Как сделать кнопку для макроса

Что такое макрос?

Для начала немного о терминологии.

Записанный макрос можно будет запускать неограниченное количество раз и Excel повторит все записанные шаги. Это означает, что даже если вы ничего не знаете о VBA, вы можете автоматизировать некоторые задачи, просто записав свои шаги и затем повторно использовать их позже.

Теперь давайте погрузимся и посмотрим, как записать макрос в Excel.

Отображение вкладки «Разработчик» в ленте меню

Перед тем как записывать макрос, нужно добавить на ленту меню Excel вкладку «Разработчик». Для этого выполните следующие шаги:

В результате на ленте меню появится вкладка «Разработчик»

Как сделать кнопку для макроса

Запись макроса в Excel

Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, например «Excel».

Вот шаги для записи такого макроса:

Поздравляем! Вы только что записали свой первый макрос в Excel. Хотя макрос не делает ничего полезного, но он поможет нам понять как работает макрорекордер в Excel.

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

Вы увидите, что как только вы нажмете кнопку «Выполнить», текст «Excel» будет вставлен в ячейку A2 и выбрана ячейка A3. Это происходит за миллисекунды. Но на самом деле макрос последовательно выполнил записанные действия.

Примечание. Вы также можете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а затем нажмите клавишу N). Это тот же самый ярлык, который мы назначили макросу при его записи.

Что записывает макрос?

Теперь перейдем к редактору кода и посмотрим что у нас получилось.

Вот шаги по открытию редактора VB в Excel:

Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.

Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.

Как сделать кнопку для макроса

Когда мы записали макрос «ВводТекста», в редакторе VB произошли следующие вещи:

Поэтому, если вы дважды щелкните по модулю (в нашем случае модуль 1), появится окно кода, как показано ниже.

Как сделать кнопку для макроса

Вот код, который записан макрорекодером:

Теперь давайте пробежим по каждой строке кода и опишем что и зачем.

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

Абсолютная и относительная запись макроса

Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к конкретному адресу ячейки. В этом случае программа будет «двигаться» относительно активной ячейки. Например, предположим, что вы уже выбрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите клавишу Enter. Теперь, если вы запустите этот макрос, он не вернется в ячейку A2, вместо этого он будет перемещаться относительно активной ячейки. Например, если выбрана ячейка B3, она переместится на B4, запишет текст «Excel» и затем перейдет к ячейке K5.

Теперь давайте запишем макрос в режиме относительных ссылок:

Макрос в режиме относительных ссылок будет сохранен.

Теперь сделайте следующее.

Вот код, который записал макрорекодер:

Как сделать кнопку для макроса

Обратите внимание, что в коде нет ссылок на ячейки B3 или B4. Макрос использует Activecell для ссылки на текущую ячейку и смещение относительно этой ячейки.

Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненужный код, который не имеет никакой цели и может быть удален. Без него код будет работать отлично.

Что нельзя сделать с помощью макрорекодера?

Макро-рекордер отлично подходит для вас в Excel и записывает ваши точные шаги, но может вам не подойти, когда вам нужно сделать что-то большее.

Расширение файлов Excel, которые содержат макросы

Когда вы записываете макрос или вручную записываете код VBA в Excel, вам необходимо сохранить файл с расширением файла с поддержкой макросов (.xlsm).

Как сделать кнопку для макроса

Источник

Кнопка для вызова макроса в Excel

Кнопка для вызова макроса в Excel

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

В прошлых статьях этот вопрос рассматривался вскользь. Теперь рассмотрим его более подробно и обстоятельно.

Вызывать макросы в Excel можно несколькими способами (естественно, макросы должны быть в книге):

Вставка кнопки.

Переходим на вкладку «Разработчик», в блоке кнопок «Элементы управления» нажимаем «Вставить», в появившемся списке выбираем вариант «Кнопка».

Как сделать кнопку для макроса

В выпавшем списке есть два варианта: кнопка как элемент управления формы и как элемент ActiveX. В принципе, большой разницы в выборе кнопок нет, так что возьмём кнопку из блока «Элементы управления формы».

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

Как сделать кнопку для макроса

Как сделать кнопку для макроса

Как сделать кнопку для макроса

Сочетание клавиш

С сочетанием клавиш всё гораздо проще. Переходим на вкладку «Разработчик», нажимаем кнопку «Макросы», в выпавшем окне выбираем макрос (DF), нажимаем кнопку «Параметры» и назначаем сочетание клавиш. Как правило это сочетание с клавишей Ctrl. Для вызова макроса нужно просто нажать назначенные клавиши.

Как сделать кнопку для макроса

Автофигура

Переходим на вкладку «Вставка», нажимаем кнопку «Иллюстрации», в выпавшем списке выбираем «Фигуры» и выбираем фигуру, которую хотим вставить. После выбора фигуры не забываем щёлкнуть по листу, как и в случае с кнопками.

Как сделать кнопку для макроса

Далее, щёлкаем правой кнопкой мышки по фигуре и используем пункт «Назначить макрос. » как и в кнопках. Выбираем наш макрос и жмём «OK».

Как сделать кнопку для макроса

Как сделать кнопку для макроса

Рисунок

С рисунками та же ситуация, что и с фигурами. Поэтому повторять порядок действий не буду. Вместо «Фигуры» нужно выбрать «Рисунки» и указать путь к любому рисунку на вашем ПК.

Как сделать кнопку для макроса

Далее снова щёлкаем правой кнопкой мышки и выбираем «Назначить макрос», выбираем нужный нам и нажимаем «ОК».

В итоге у нас появится книга Excel с четырьмя вариантами вызова макросов.

Как сделать кнопку для макроса

Скажу напоследок, что таким же способом можно назначить макрос и объекту WordArt, SmarArt рисунку, любой диаграмме.

Автор записи: Иван

Похожие записи ‘

Как сделать кнопку для макроса

Vcf в Excel

Vcf в Excel Добрый день, уважаемые читатели и подписчики блога! Давно не было.

Как сделать кнопку для макроса

Импорт из Excel в Power Bi

Импорт из Excel в Power Bi Добрый день, уважаемые читатели и подписчики блога.

Как сделать кнопку для макроса

Power Bi SQL запросы

Power Bi SQL запросы Добрый день, уважаемые читатели и подписчики блога! Сегодня.

Как сделать кнопку для макроса

Excel сумма по цвету

Excel сумма по цвету Добрый день, уважаемые читатели и подписчики блога.

Как сделать кнопку для макроса

Функция ПЕРЕКЛЮЧ в Excel

Функция ПЕРЕКЛЮЧ в Excel Добрый день, уважаемые читатели и подписчики блога.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *