Эксель кнопка для макроса

Кнопка в Excel как ссылка на ячейку, какой-либо инструмент, созданный макрос значительно упрощает работу в программе. Чаще всего это графический объект с назначенным макросом или гиперссылкой. Рассмотрим, как сделать такую кнопку.

Как сделать кнопку на листе Excel

Суть работы: создать графический объект и назначить для него макрос или гиперссылку. Рассмотрим подробнее.

Способы создания графического объекта:

  1. Кнопка – элемент ActiveX. Переходим на вкладку «Разработчик». Нажимаем кнопку «Вставить». Открывается меню с набором элементов для вставки. Выбираем первый элемент ActiveX – «кнопку» (в виде серого кирпичика). Теперь рисуем курсором кнопку необходимого размера.
  2. Кнопка – элемент управления формы. Снова переходим на вкладку «Разработчик». Открываем меню инструмента «Вставить». Теперь выбираем элемент «кнопка» из первой группы (такой же серый кирпичик). Рисуем кнопку. Сразу открывается окно для назначения макроса: можно сделать сразу, а можно попозже.
  3. Кнопка – автофигура. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем подходящую фигуру. Рисуем. По готовой фигуре можно щелкнуть правой кнопкой мыши и изменить оформление.
  4. Кнопка – рисунок. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем инструмент «Рисунок». Для выбора будут предложены варианты, которые имеются на компьютере.

Графический объект создан. Теперь нужно сделать его «рабочим».

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

К примеру, написали макрос для выполнения определенной задачи. Чтобы запускать его, нужно каждый раз заходить в меню «Разработчик». Что неудобно. Гораздо проще создать «рабочую» кнопку.

Если мы использовали элемент ActiveX, то:

  • включаем режим конструктора (он находится на вкладке «Разработчик»);
  • щелкаем два раза кнопкой мыши по созданной кнопке – откроется режим Visual Basic с автоматически созданным пустым каркасом;
  • вписываем между двумя строками команду для вызова макроса.

Для других графических объектов макрос назначается так же. Процедура еще проще. Нужно щелкнуть правой кнопкой мыши по нарисованной кнопке или картинке и выбрать инструмент «Назначить макрос».

Другие варианты использования кнопок

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

Нарисуем графический объект и выделим его. На вкладке «Вставка» найдем кнопку «Гиперссылка».

После нажатия открывается окно для создания связи кнопки с файлом, веб-страницей, электронной почтой, новым документом, местом в текущем документе.

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

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

Sub Макрос 1()
Range("M6").Select
End Sub

Точно так же можно назначить макрос диаграмме, объектам WordArt, SmartAtr.

Как сделать кнопку сортировки в Excel для таблиц

Для показательного примера создайте тестовую таблицу как на рисунке:

  1. Вместо заголовков колонки таблицы добавим автофигуры, которые будут служить кнопками для сортировки по столбцам таблицы.
  2. В режиме Visual Basic – ALT+F11 в папке Modules вставляем новый модуль Module1. Для этого делаем по папке правый щелчок мышкой и выбираем: Insert-Module.
  3. Делаем двойной щелчок по Module1 и вводим в него следующий код: Sub Макрос1()
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(" A2:A6 "), _
    SortOn:=xlSortOnValues, Order:= xlAscending , DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
    .SetRange Range("A2:D6")
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос2()
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(" B2:B6 "), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
    .SetRange Range("A2:D6")
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос3(
    ) ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(" C2:C6 "), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
    .SetRange Range("A2:D6")
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос4()
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(" D2:D6 "), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
    .SetRange Range("A2:D6")
    .Apply
    End With
    End Sub Примечание. Красным текстом отмечены отличающиеся параметры для каждого столбца.
  4. Назначаем каждой автофигуре свой макрос: для «Наименование» – Макрос1, а для «Май» – Макрос2 и т.д.

Все теперь достаточно только кликнуть по заголовку и таблица отсортирует данные относительно определенного столбца. Для удобства столбец «Наименование» Макрос1 сортирует по возрастанию благодаря параметру Order:=xlAscending. Во всех остальных столбцах присвоены макросы (2,3,4) с параметром Order:=xlDescending, который задает тип сортировки по убыванию. Чтобы видно было, в каком месяце было больше продано товара.

Примечание. Такие простые макросы можно создать в автоматическом режиме без программирования или без написания VBA-кода, с помощью инструмента «Запись макроса».

Вы можете использовать кнопку элемента управления формы или кнопку команды (элемент ActiveX) для запуска макроса, выполняющего действия при нажатии пользователем. Обе эти кнопки также называются кнопкой "Отправить", которую можно настроить для автоматизации печати листа, фильтрации данных или вычисления чисел. Как правило, кнопки элемента управления формы и кнопки элемента управления ActiveX похожи на внешний вид и функции. Однако у них есть несколько отличий, которые описаны в следующих разделах.

Кнопка (элемент управления формы)

Командная кнопка (элемент ActiveX)

В следующих разделах приведены инструкции по добавлению макроса на кнопку в Excel (для Windows или Mac).

Примечание: Элементы ActiveX не поддерживаются на компьютере Mac.

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

Первый этап — включить его. Дополнительные сведения можно найти в статье: Отображение вкладки Разработчик.

Добавление кнопки (элемент управления формы)

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

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

Назначьте кнопку макроса, а затем нажмите кнопку ОК.

Чтобы задать свойства элемента управления, щелкните ее правой кнопкой мыши и выберите пункт Формат элемента управления.

Кнопка "добавить команду" (элемент ActiveX)

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

Щелкните на листе место, где должен быть расположен левый верхний угол кнопки.

В группе элементы управления нажмите кнопку Просмотреть код. Откроется редактор Visual Basic. Убедитесь в том, что выбран пункт в раскрывающемся списке справа. Процедура Sub CommandButton1_Click (на рисунке ниже) выполняет два макроса при нажатии кнопки: SelectC15 и хелломессаже.

В подпроцедуре для кнопки Command выполните одно из указанных ниже действий.

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

При необходимости добавьте собственный код VBA.

Закройте редактор Visual Basic и щелкните режим конструктора , чтобы включить режим конструктора.

Чтобы запустить код VBA, который теперь входит в состав кнопки, щелкните только что созданную кнопку ActiveX.

Чтобы изменить элемент ActiveX, убедитесь, что выбран режим конструктора. На вкладке Разработчик в группе Элементы управления нажмите кнопку Режим конструктора.

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

Примечание: Перед тем как нажать кнопку Свойства, выделите объект, свойства которого требуется просмотреть или изменить.

Откроется диалоговое окно Свойства . Для получения дополнительных сведений о каждом свойстве выберите свойство и нажмите клавишу F1, чтобы отобразить соответствующий раздел справка по Visual Basic. Можно также ввести имя свойства в поле Поиск справки Visual Basic. В приведенной ниже таблице перечислены доступные свойства.

Загружается ли элемент управления при открытии книги. (Не учитывается для элементов ActiveX).

Может ли элемент управления получать фокус и реагировать на события, генерируемые пользователем.

Можно ли изменять элемент управления

Имя элемента управления

Способ привязки элемента управления к расположенным под ним ячейкам (не закреплен, можно перемещать, но нельзя изменять размер, можно перемещать и изменять размер)

Можно ли выводить элемент управления на печать

Является ли элемент управления видимым или скрытым

Атрибуты шрифта (полужирный, курсив, размер, зачеркивание, подчеркивание и насыщенность)

Bold, Italic, Size, StrikeThrough, Underline, Weight (форма)

Поясняющий текст элемента управления, определяющий или описывающий его

Будет ли содержимое элемента управления переноситься по словам в конце строки

Размер и положение

Будет ли размер элемента управления изменяться автоматически для отображения всего содержимого

Высота или ширина в пунктах

Height, Width (форма)

Расстояние от элемента управления до левого или верхнего края листа

Стиль фона (прозрачный или непрозрачный)

Цвет переднего плана

Наличие тени элемента управления

Точечный рисунок, отображаемый в элементе управления

Положение рисунка относительно его заголовка (слева, сверху, справа и так далее)

Клавиатура и мышь

Сочетание клавиш для элемента управления

Настраиваемый значок мыши

Тип указателя, отображаемого при наведении пользователем указателя мыши на определенный объект (стандартная, стрелка, I-образная и т. д.).

Принимает ли элемент управления фокус при щелчке.

Макросы и средства VBA можно найти на вкладке " разработчик ", которая скрыта по умолчанию, поэтому первым делом нужно включить ее.

Перейдите в раздел настройки > Excel . Панель инструментов & > ленты.

В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

Добавление кнопки (элемент управления формы)

Выполните указанные ниже действия:

На вкладке разработчик нажмите кнопку .

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

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

Назначение макроса кнопке и нажатие кнопки ОК.

Чтобы задать свойства элемента управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления….

Кнопка добавления команды (элемент управления Visual Basic)

На вкладке разработчик нажмите кнопку .

Щелкните на листе место, где должен находиться левый верхний угол кнопки.

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

В диалоговом окне Назначение макроса нажмите кнопку создать, после чего откроется Редактор Visual Basic ( VBE) на панели с помощью следующего кода:

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

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

Добавьте собственный код VBA.

Щелкните режим конструктора , чтобы убедиться в том, что режим конструктора выключен, а затем закройте окно редактора Visual Basic.

Чтобы изменить кнопку, щелкните ее правой кнопкой мыши и выберите команду Visual Basic.

Чтобы задать свойства элемента управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления….

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

См. также

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Get expert help now

Don’t have time to figure this out? Our expert partners at Excelchat can do it for you, 24/7.

В данной статье я расскажу, как сделать кнопку для запуска своего макроса.

Файлы для скачивания:
Файл Описание Размер файла: Скачивания
Пример 14 Кб 1240

Давайте возьмем файл с предварительно записанным макросом или запишем новый макрос, как это сделать описано в статье " Как записать макрос не зная языка VBA? ".

Чтобы вставить в рабочий лист Кнопку , необходимо настроить (включить) вкладку "Разработчик" на ленте главного меню ( Как добавить вкладку "Разработчик" на ленту? ).

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

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

После чего наш курсор мышки превратиться в крестик, наводим его на то место, в которое хотим вставить нашу Кнопку, нажимаем левую клавишу мыши:

Откроется диалоговое окно "Назначить макрос объекту":

В этом окне выбираем наш макрос и нажимаем "ОК":

Диалоговое окно закроется, а в указанном нами месте на листе появиться кнопка:

Щелкните по любой ячейке левой клавишей мышки, с кнопки снимется выделение:

Щелкните левой клавишей мышки по кнопке – макрос выполниться:

Чтобы макрос выполнялся по нажатию определенных клавиш, читайте статью "Как назначить макросу сочетание клавиш?"

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

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