Пример макроса в excel кнопка

Хитрости »

1 Май 2011              357595 просмотров


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

После создания макроса часто возникает вопрос: а как его теперь запустить? Можно, конечно, нажать сочетание клавиш 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
ссылки
статистика

Вставка командной кнопки на рабочий лист для начинающих программировать с нуля. Кнопки из коллекций «Элементы управления формы» и «Элементы ActiveX».

Начинаем программировать с нуля
Часть 3. Первая кнопка
[Часть 1] [Часть 2] [Часть 3] [Часть 4]

Добавление вкладки «Разработчик»

Вкладка с инструментами, связанными с VBA Excel, называется «Разработчик». Если этой вкладки нет на вашей ленте, добавьте ее через окно «Параметры»:

Окно «Параметры Excel»

Порядок действий:

  • Откройте окно «Параметры» через меню «Файл».
  • Выберите вкладку «Настроить ленту».
  • В правой колонке установите галочку у пункта «Разработчик» и нажмите «OK».

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

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

  1. Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
  2. Нажмите на значок кнопки в коллекции «Элементы управления формы».

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

  1. Кликните в любом месте на рабочем листе Excel.
  2. Откроется окно «Назначить макрос объекту». Нажмите «Отмена», так как макрос для этой кнопки еще не готов.
  3. После нажатия кнопки «Отмена», на рабочем листе появится новая кнопка из коллекции «Элементы управления формы» в режиме редактирования.

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

Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.

Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.

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

Создание процедуры для кнопки

Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.

Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) и перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».

Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.

Вставка модуля в редакторе VBA Excel

Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.

Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

Вставка процедуры в редакторе VBA Excel

В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».

Окно добавления процедуры в редакторе VBA Excel

В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».

Шаблон процедуры в редакторе VBA Excel

Вставьте внутрь шаблона процедуры следующий код:

‘Записываем в ячейку A1 число 44

Cells(1, 1) = 44

‘Записываем в ячейку B1 число 56

Cells(1, 2) = 56

‘Записываем в ячейку C1 формулу, которая

‘вычисляет сумму значений ячеек A1 и B1

Cells(1, 3) = «=A1+B1»

Процедура в редакторе VBA Excel

На этом процедура (подпрограмма, макрос) для кнопки готова.

Назначение макроса кнопке

Кликните правой кнопкой мыши по кнопке на рабочем листе и в контекстном меню выберите строку «Назначить макрос…», откроется окно «Назначить макрос объекту».

Окно «Назначить макрос объекту»

Выберите в списке процедуру «NovayaProtsedura» и нажмите «OK». Кликните левой кнопкой мыши по рабочему листу, чтобы командная кнопка вышла из режима редактирования.

Теперь можете нажать созданную кнопку из коллекции «Элементы управления формы» для проверки ее работоспособности.

Кнопка – элемент ActiveX

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

  1. Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
  2. Нажмите на значок кнопки в коллекции «Элементы ActiveX».

Добавление кнопки на рабочий лист (элемент ActiveX)

  1. Кликните по рабочему листу и кнопка из коллекции «Элементы ActiveX» появится рядом с курсором.
  2. Автоматически включится режим редактирования, включение и отключение которого осуществляется кнопкой «Режим конструктора».

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

Ухватив кнопку за кружок, можно изменить ее размер, а ухватив за границу – перетащить на другое место. Чтобы отредактировать наименование кнопки, нужно кликнуть на ней правой кнопкой мыши и в контекстном меню выбрать «Объект CommandButton» > «Edit».

Добавление процедуры

Кликните дважды по кнопке из коллекции «Элементы ActiveX» левой кнопкой мыши в режиме конструктора. Это приведет к открытию модуля листа, на который вставлена кнопка, и записи шаблона процедуры «CommandButton1_Click».

Шаблон процедуры в модуле рабочего листа Excel

Вставьте внутрь шаблона процедуры код, который будет очищать ячейки A1, B1 и C1:

Процедура в модуле рабочего листа Excel

Перейдите на рабочий лист и, если кнопка «Режим конструктора» затемнена, нажмите на нее, чтобы выйти из режима редактирования. После этого нажмите кнопку «CommandButton1», и она очистит ячейки, заполненные ранее нажатием кнопки «Кнопка 1».

Две кнопки на рабочем листе Excel

Теперь кнопка из коллекции «Элементы управления формы» (Кнопка 1) будет заполнять ячейки диапазона «A1:C1», а кнопка из коллекции «Элементы ActiveX» (CommandButton1) очищать их.


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

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

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

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

  1. Кнопка – элемент ActiveX. Переходим на вкладку «Разработчик». Нажимаем кнопку «Вставить». Открывается меню с набором элементов для вставки. Выбираем первый элемент ActiveX – «кнопку» (в виде серого кирпичика). Теперь рисуем курсором кнопку необходимого размера.
  2. Кнопка 1.

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

  5. Кнопка – автофигура. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем подходящую фигуру. Рисуем. По готовой фигуре можно щелкнуть правой кнопкой мыши и изменить оформление.
  6. Кнопка 3.

  7. Кнопка – рисунок. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем инструмент «Рисунок». Для выбора будут предложены варианты, которые имеются на компьютере.

Кнопка 4.

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



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

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

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

Макрос 1.

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

Назначить макрос.

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

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

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

Гиперссылка.

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

Вставка гиперссылки.

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

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

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

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

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

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

Какого товара больше продано по месяцам.

  1. Вместо заголовков колонки таблицы добавим автофигуры, которые будут служить кнопками для сортировки по столбцам таблицы.
  2. Авто-фигуры как заголовки.

  3. В режиме Visual Basic — ALT+F11 в папке Modules вставляем новый модуль Module1. Для этого делаем по папке правый щелчок мышкой и выбираем: Insert-Module.
  4. Module1.

  5. Делаем двойной щелчок по Module1 и вводим в него следующий код:

  6. 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

    Примечание. Красным текстом отмечены отличающиеся параметры для каждого столбца.

  7. Назначаем каждой автофигуре свой макрос: для «Наименование» – Макрос1, а для «Май» – Макрос2 и т.д.

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

Скачать пример кнопки сортировки

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

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

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

Вкладка "Разработчик" на ленте

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

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

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

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

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

Добавление кнопки (ActiveX управления)

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

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

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

    Подпрограмма в редакторе Visual Basic

  4. В подпроцеду для кнопки сделайте следующее:

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

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

  5. Закроем Visual Basic редактора и нажмите кнопку Режим конструктора Изображение кнопки режим конструктора, чтобы отключить режим конструктора.

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

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

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

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


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

Описание параметра

Необходимое свойство

Общие

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

AutoLoad (Excel)

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

Enabled (форма)

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

Locked (форма)

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

Name (форма)

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

Placement (Excel)

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

PrintObject (Excel)

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

Visible (форма)

Текст

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

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

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

Caption (форма)

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

WordWrap (форма)

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

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

AutoSize (форма)

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

Height, Width (форма)

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

Left, Top (форма)

Форматирование

Цвет фона

BackColor (форма)

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

BackStyle (форма)

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

ForeColor (форма)

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

Shadow (Excel)

Изображение

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

Picture (форма)

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

PicturePosition (форма)

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

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

Accelerator (форма)

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

MouseIcon (форма)

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

MousePointer (форма)

Будет ли фокус при щелчке.

TakeFocusOnClick (форма)


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

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

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

    Чтобы добавить его на ленту, выберите его рядом с "Разработчиком"

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

Сделайте следующее:

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

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

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

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

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

Добавление кнопки (Visual Basic управления)

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

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

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

  3. В диалоговом окне Назначение макроса выберите Новый, который откроет редактор Visual Basic(VBE)в области со следующим кодом:

      Sub ButtonX_Click() 
    
      End Sub

  4. В подпроцеду для кнопки между строками Sub и End Sub сделайте следующее:

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

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

  5. Нажмите кнопку Режим Изображение кнопки режим конструктора, чтобы режим конструктора отключен, а затем закроем Visual Basic редактора.

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

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

Содержание:

  1. Вставьте фигуру и назначьте ей макрос
  2. Сохранение формы видимой при скрытии / изменении размера строк / столбцов
  3. Назначение макроса кнопке управления формой
  4. Назначение макроса кнопке управления ActiveX

Хотя есть много разных способов запустить макрос в Excel, ни один из этих методов не может быть таким простым и удобным, как нажатие кнопки.

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

В этом уроке я покажу вам несколько способов вставить кнопку в Excel, а затем назначить макрос этой кнопке (или фигуре). После этого, как только пользователь нажимает кнопку, выполняется макрос VBA-код.

Для этого урока я буду использовать приведенный ниже макрокод VBA (который просто выбирает ячейку A1 на активном листе, вводит в нее текст «Доброе утро» и окрашивает ее в красный цвет).
Sub GoodMorning () с ActiveSheet.Range ("A1") .Value = "Доброе утро" .Interior.Color = vbRed Конец с концом Sub
Приведенный выше код VBA помещается в обычный модуль редактора VB.

Теперь давайте перейдем к делу и посмотрим, как можно назначить этот макрос кнопке или фигуре в Excel!

Вставьте фигуру и назначьте ей макрос

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

Мне лично нравится этот метод, и я предпочитаю его остальным двум методам, которые мы рассмотрим позже. Вы можете легко вставить фигуру (квадрат или прямоугольник) и сделать ее похожей на кнопку.

А поскольку это форма, вы можете легко отформатировать ее, чтобы она идеально сочеталась с существующим форматированием или фирменными цветами.

Ниже приведены шаги для вставки фигуры в Excel:

  1. Щелкните вкладку Вставка
  2. В группе иллюстраций нажмите Фигуры
  3. В параметрах фигур выберите параметр «Прямоугольник». Вы заметите, что ваш курсор изменится на значок плюса
  4. Щелкните в любом месте листа. Это вставит прямоугольную форму на лист.
  5. Измените размер прямоугольника и отформатируйте его (при желании задайте рамку, цвет, оттенок).

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

Обратите внимание, что в этом примере я вставил форму прямоугольника, но вы можете вставить любую форму, которую хотите (например, круг, треугольник или стрелку). Я предпочитаю использовать прямоугольник, он выглядит как кнопка и более интуитивно понятен.

Теперь давайте посмотрим, как назначить макрос этой фигуре.

  1. Щелкните правой кнопкой мыши фигуру, которой вы хотите назначить макрос
  2. В появившемся меню выберите «Назначить макрос». Откроется диалоговое окно назначения макроса.
  3. В диалоговом окне «Назначить макрос» вы увидите список всех макросов, имеющихся в книге.
  4. Щелкните имя макроса, который вы хотите назначить этой фигуре. В этом примере я нажимаю на макрос под названием «GoodMorning.
  5. Нажмите ОК.

Вот и все!

Выбранный макрос теперь назначен фигуре.

Теперь, когда вы наведете курсор на фигуру, появится значок руки. что указывает на то, что теперь эта фигура стала интерактивной.

И теперь, если вы нажмете на фигуру, она запустит назначенный макрос.

Вы можете ввести любой текст внутри фигуры, чтобы сделать ее более интуитивно понятной (например, «Щелкните здесь, чтобы запустить макрос»). Сделать это. щелкните фигуру правой кнопкой мыши и выберите «Редактировать текст». Теперь вы можете вводить текст в форме текстового поля.

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

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

Сохранение формы видимой при скрытии / изменении размера строк / столбцов

В Excel. когда вы вставляете фигуру, она располагается над ячейками — как диаграмма / объект.

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

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

Если вы не хотите, чтобы это произошло, выполните следующие действия:

  1. Щелкните форму правой кнопкой мыши
  2. Нажмите «Форматировать фигуру».
  3. На панели «Формат фигуры» (или в диалоговом окне, если вы используете Excel 2010 или более ранние версии) выберите «Размер и свойства».
  4. В разделе «Свойства» выберите вариант «Не перемещать и не изменять размер вместе с ячейками».
  5. Закройте панель (или диалоговое окно)

Теперь, когда вы изменяете размер строк / столбцов или скрываете их, форма останется на своем месте.

Назначение макроса кнопке управления формой

Если вас не слишком интересует форматирование кнопки и вас устраивает обычная серая кнопка, вы можете быстро вставить ее из элемента управления формы (или элемента управления ActiveX, как показано ниже), а затем назначить ему макрос.

Чтобы это работало, вам понадобится вкладка Разработчик на ленте. Если у вас его нет, вот подробное пошаговое руководство по размещению вкладки разработчика на ленте Excel.

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

  1. Перейдите на вкладку «Разработчик».
  2. В группе Ctrl нажмите Insert.
  3. В появившихся параметрах в параметрах элементов управления формы нажмите кнопку (элемент управления формы).
  4. Щелкните в любом месте листа. Это вставит кнопку в любое место, где вы щелкнете, и автоматически откроет диалоговое окно «Назначить макрос».
  5. В диалоговом окне «Назначить макрос» вы увидите список всех макросов, имеющихся в книге.
  6. Щелкните имя макроса, который вы хотите назначить этой кнопке. В этом примере я нажимаю на макрос под названием «GoodMorning».
  7. Нажмите ОК.

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

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

Поскольку это объект, который помещается на лист (как фигуры / диаграммы), вы можете перетащить его в любое место на листе.

Одним из недостатков использования кнопки управления формой является то, что вы не можете полностью контролировать форматирование. Например, нельзя изменить цвет с серого на другой.

Хотя есть немного форматирования, которое вы можете сделать с помощью кнопки управления формой, это далеко не то, что вы можете делать с фигурами.

Вы получаете эти параметры форматирования кнопки, когда щелкаете правой кнопкой мыши по кнопке, а затем нажимаете «Управление форматом».

Откроется диалоговое окно «Управление форматом», в котором вы можете изменить тип / цвет шрифта, размер, выравнивание и т. Д.

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

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

  1. Щелкните правой кнопкой мыши по кнопке
  2. Нажмите на Управление форматом
  3. Перейдите на вкладку «Свойства».
  4. Выберите вариант — «Не перемещать и не изменять размер вместе с ячейками».
  5. Нажмите ОК

Назначение макроса кнопке управления ActiveX

Помимо кнопки управления формой, есть также кнопка управления ActiveX, которой вы можете назначить макрос.

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

Хотите знать, почему у нас есть два разных типа кнопок — Form Ctrl и ActiveX? В то время как элементы управления формы встроены в приложение Excel, ActiveX загружается из отдельной библиотеки DLL (библиотеки динамической компоновки). Это делает кнопки управления формой намного более надежными и надежными по сравнению с кнопками ActiveX. Вы можете узнать больше об этой разнице здесь, в сообщении в StackOverflow.

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

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

  1. Перейдите на вкладку «Разработчик».
  2. В группе Ctrl нажмите Insert.
  3. В появившихся опциях в опциях ActiveX Ctrls щелкните опцию Command Button.
  4. Щелкните в любом месте листа. Это вставит кнопку куда бы вы ни щелкнули.
  5. Дважды щелкните кнопку, и откроется бэкэнд редактора VB, где вы можете разместить код для кнопки ActiveX.

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

Опять же, это не то, что вам нужно использовать в своей обычной работе.

Другой вариант, который вы можете рассмотреть (при работе с кнопками / фигурами и назначении им макросов), — это добавить макрос на панель быстрого доступа. Таким образом, вы можете запустить макрос одним щелчком мыши, и он всегда будет виден в QAT.

Надеюсь, вы нашли этот урок полезным. Если вы заинтересованы в изучении VBA, вы можете ознакомиться с более подробными руководствами по Excel VBA здесь.

Понравилась статья? Поделить с друзьями:
  • Пример макроса excel скачать
  • Пример макроса excel примеры
  • Пример макрос на vba для excel
  • Пример логической функции если в excel примеры
  • Пример логической формулы если в excel