Разное

Кнопка для макроса excel: Как сделать кнопку в Excel с помощью макроса и гиперссылки

Содержание

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

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

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

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

 

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

  • вставкой кнопки;
  • сочетанием клавиш;
  • вставкой автофигуры;
  • вставкой рисунка.

 

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

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

 

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

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

 

 

Первый — это кнопка управления формы, второй  — кнопка управления ActiveX.

Отличие — в добавлении вызова макроса. В первом случае нужно щёлкнуть правой кнопкой и выбрать «Назначить макрос…», во втором просто сделать двойной щелчок по кнопке и дописать вызов макроса. В моём случае это «Call DF».

 

 

 

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

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

 

 

Автофигура

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

 

 

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

 

 

 

Рисунок

 

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

 

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

 

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

 

 

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

Программное добавление кнопок на лист Excel

Надстройка предназначена для автоматизации добавления кнопок запуска макроса на лист Excel

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

Решением стало создание этой надстройки — теперь достаточно выделить диапазон ячеек на листе Excel, нажать комбинацию клавиш типа Alt + 1, — и через мгновение на листе создаётся зелёная кнопка с названием «Запуск», расположенная точно поверх ранее выделенных ячеек. Остаётся только назначить этой кнопке макрос, щелкнув по ней правой клавишей мыши.

Пример кода VBA для создания кнопки:

Sub ПримерИспользования()
    СоздатьКнопку Selection, vbGreen, "Обработать данные": End Sub
End Sub

Для вызова формы (где можно настроить текст и цвет будущей кнопки) предназначена комбинация клавиш Ctrl + Alt + Shift + B

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

Function СоздатьКнопку(ByRef ra As Range, Optional ByVal ButtonColor As Long = 255, _
                       Optional ByVal ButtonName$ = "Запуск", Optional ByVal MacroName As String = "")
    ' Функция рисует автофигуру (прямоугольник) поверх диапазона ячеек ra
    ' и окрашивает созданную кнопку (с названием ) в цвет Button_color
    ' Созданной кнопке назначается макрос MacroName
    On Error Resume Next: Err.Clear
    w = ra.Width: h = ra.Height: l = ra.Left: t = ra.Top
    w = IIf(w >= 10, w, 50): h = IIf(h >= 10, h, 50)    ' не создаём маленькие кнопки - минимум 10*10

    ' добавляем кнопку на лист
    Dim sha As Shape: Set sha = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, l, t, w, h)
    With sha    ' оформляем автофигуру
        .Fill.Visible = msoTrue: .Fill.Solid
        .Fill.ForeColor.RGB = ButtonColor: .Fill.Transparency = 0.3
        .Fill.BackColor.RGB = vbWhite
        .Fill.TwoColorGradient msoGradientFromCenter, 2    ' градиентная заливка
        .Adjustments.item(1) = 0.23: .Placement = xlFreeFloating
        .OLEFormat.Object.PrintObject = False    ' кнопки не выводятся на печать
        .Line.Weight = 0.25: .Line.ForeColor.RGB = vbBlack ' делаем тонкий черный контур
        With .TextFrame    ' добавляем и форматируем текст
            .Characters.Text = ButtonName$ ' добавляем текст
            With .Characters.Font ' изменяем начертание текста
                .Size = IIf(h >= 16, 10, 8): .Bold = True:
                .Color = vbBlack: .Name = "Arial" ' цвет и шрифт
            End With
            .HorizontalAlignment = xlCenter: .VerticalAlignment = xlVAlignCenter
        End With
        .onaction = MacroName    ' назначаем кнопке макрос (если он задан в параметрах)
    End With
End Function

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

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

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

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

Sub TestMacro()

MsgBox "Макрос выполнен"

End Sub

Способ 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)

TestMacro

End Sub

Если гиперссылок несколько, вы можете использовать свойство Target.TextToDisplay, чтобы различить гиперссылки:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Select Case Target.TextToDisplay

Case "Run Report 2"

TestMacro

Case "Run Report 2"

TestMacro2

Case "Run Report 3"

TestMacro3

End Select

End Sub

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

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Select Case Target.TextToDisplay

Case "A-Z"

SortMacroAscending

Target.TextToDisplay = "Z-A"

Case "Z-A"

SortMacroDescending

Target.TextToDisplay = "A-Z"

End Select

End Sub

Резюме: запуск макроса кнопкой может быть выполнен с помощью элементов управления формы, элементов ActiveX, фигуры SmartArt, гиперссылки и др.

[1] В процессе написания заметки я тестировал те или иные возможности, поэтому моя кнопка имеет номер 3. Если вы выполняете операцию создания Кнопки ActiveX впервые, ваша Кнопка будет иметь имя CommandButton1

Как создать кнопку в excel для макроса

Создание кнопки в Microsoft Excel

​Смотрите также​ выставляется ссылка​Формы​Управление всеми доступными макросами​ она не просто​и​ VBA и файлы​ одни и те​ следующий код:​ с набором элементов​Закрываем редактор, и запускаем​ этой же книге​Теперь после нажатия на​ в документе.​Автор: Максим Тютюшев​ окна. Теперь вкладка​

​ котором желаем расположить​Excel является комплексным табличным​

Процедура создания

​Karataev​через меню​ производится в окне,​ возрвращает Вас в​End Sub​ справки не переводятся​ же действия и​Sub Макрос 1()​ для вставки. Выбираем​ макрос, как и​ (файле), но при​ кнопку будет выполняться​После выбора нажмите кнопку​Табличный процессор Excel вмещает​

Способ 1: автофигура

​ разработчика будет активирована​ объект. Переходим во​ процессором, перед которым​: так можно добавить​

  1. ​Вид — Панели инструментов​​ которое можно открыть​​ предыдущее состояние, но​​- тело макроса,​​ компанией Microsoft на​ операции в Excel.​Range(«M6»).Select​​ первый элемент ActiveX​​ в прошлый раз.​ желании можно установить​ тот макрос, который​ «ОК».​ в себя огромное​ в вашей версии​ вкладку​ пользователи ставят самые​ на ленту кнопку​

  2. ​ — Формы (View​ с помощью кнопки​ и стирает последнюю​ т.е. команды, которые​ русский язык, поэтому​ Любая офисная работа​End Sub​ – «кнопку» (в​ Как видим, вследствие​

  3. ​ хранение в новой​ вы указали. Теперь​На этом создание кнопки​ количество опций и​ Excel.​«Вставка»​ разнообразные задачи. Одной​ для макроса средствами​ — Toolbars -​Макросы (Macros)​ записанную команду на​​ будут выполняться при​​ с английскими командами​

  4. ​ предполагает некую «рутинную​Точно так же можно​ виде серого кирпичика).​​ введенных нами изменений​​ книге, или в​ вы знаете все​ первым способом закончено.​ функций, не исключая​​После этого перемещаемся во​​и кликаем по​

​ из таких задач​ самой программы excel​ Forms)​на вкладке​ VBA.​

​ запуске макроса. В​​ в меню и​ составляющую» — одни​

Способ 2: стороннее изображение

​ назначить макрос диаграмме,​ Теперь рисуем курсором​ была добавлена ещё​

  1. ​ отдельной книге макросов.​ три способа, как​ Теперь после нажатия​ даже возможность создания​
  2. ​ вкладку​ значку​ является создание кнопки​Файл —> Параметры—>Настройка​​В Excel 2007 и​​Разработчик (Developer)​Чтобы включить запись необходимо:​​ данном случае макрос​​ окнах придется смириться:​ и те же​ объектам WordArt, SmartAtr.​​ кнопку необходимого размера.​​ одна ячейка с​

  3. ​ Мы оставим значение​ сделать кнопку в​ по ней вы​ кнопки. На первый​«Разработчик»​«Рисунок»​ на листе, нажатие​ ленты —>Выбрать команды​ новее — откройте​​или — в​​в Excel 2003 и​

  4. ​ выделяет ячейку заливает​Макросы (т.е. наборы команд​ еженедельные отчеты, одни​Для показательного примера создайте​Кнопка – элемент управления​ данными. Она также​ по умолчанию.​ Excel.​ будете переходить на​

  5. ​ взгляд абсолютно ненужный​. Щелкаем по кнопке​, который расположен на​ на которую запускало​ —>Макросы—> выберите макрос—>справа​ выпадающий список​ старых версиях Excel​ старше — выбрать​ выделенных диапазон (Selection)​ на языке VBA)​ и те же​ тестовую таблицу как​​ формы. Снова переходим​​ была включена в​

  6. ​В самом нижнем поле​Вот мы и рассмотрели​ другой лист в​ элемент некоторым пользователям​«Вставить»​ ленте в блоке​ бы определенный процесс.​ выберите или создайте​Вставить (Insert)​ — через меню​ в меню​​ желтым цветом (код​​ хранятся в программных​

​ действия по обработке​ на рисунке:​ на вкладку «Разработчик».​

Excel кнопка для макроса

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

​Смотрите также​​Макросы​ книги.​ или графическому элементу​введите любую строчную​ макрос, который сначала​ скопировать в другую​В поле​ обновляет таблицу в​ ко всем адресам​.​кнопку Microsoft Office​Все открытые книги​ кнопке между​Настраиваемый значок мыши.​ клавишу F1, чтобы​в группе​Примечание:​. Тут должен появиться​Serge_007​На листе щелкните правой​

​ или прописную букву.​ обновляет таблицу в​ книгу с помощью​Описание​ Excel, а затем​ единый формат. Макрос​На вкладке​, а затем —​.​Sub​MouseIcon (форма)​ отобразить раздел справка​элементы управления​ Мы стараемся как можно​ список доступных макросов,​:​ кнопкой мыши объект,​ Рекомендуется использовать сочетания​ Excel, а затем​ редактора Microsoft Visual​при необходимости введите​


​ открывает Outlook для​

​ сделать это за​

​Разработчик​ кнопку​Примечание:​и​Тип указателя, отображаемого при​

​ по Visual Basic.​​нажмите кнопку​ оперативнее обеспечивать вас​

​ но он не​

​Vostok​ рисунка, фигуры или​ клавиш, которые еще​​ открывает Outlook для​​ Basic.​ краткое описание действий​

​ ее отправки по​ вас. Запись макроса,​в группе​Параметры Excel​ Если макрос, который нужно​

Добавление кнопки (элемента управления формы)
  1. ​End Sub​​ наведении пользователем указателя​​ Можно также ввести​​Вставить​​ актуальными справочными материалами​​ появляется​​, cвои вкладки и​​ элемент, к которому​

    ​ не назначены другим​​ ее отправки по​​Назначение макроса объекту, фигуре​

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

  3. ​ мыши на определенный​ имя свойства в​​и в группе​​ на вашем языке.​

  4. ​Когда я просто​ группы можно создавать​ нужно назначить существующий​ командам, та

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Назначить горячие клавиши макросу в «Word» и «Excel»

 

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

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

Действие первое:
Войти в книгу макросов и выбрать (выделить) нужный нам макрос левой кнопкой мыши.

Действие второе.
Кликнув по кнопке «Параметры» вызвать меню настройки параметров.

 

Действие третье.
В меню параметров прописать нужные горячие клавиши на выполнение макроса и нажать кнопку «Ok».

В программе «Word» назначить (закрепить) клавишу клавиатуры за макросом немного сложнее.
Для назначения макросу горячих клавиш придется выполнить следующую последовательность действий:

Действие первое.

Вызвать контекстное меню кликнув правой кнопкой мыши по панели быстрого доступа.

Действие второе.

Выбрать в появившимся меню «Настройка ленты»

Действие третье.

В появившемся окне настроек выбрать «Сочетание клавиш «Настройка…»»

Действие четвертое.

В разделе «Категории» открывшегося окна выбрать категорию «Макросы». В соседнем разделе выделить мышью нужный макрос.

Действие пятое.

В поле «Новое сочетание клавиш» внести сочетание клавиш для запуска макроса и нажать «Ок».

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

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

 

 

VBA Excel. Элемент управления CommandButton (кнопка)

Элемент управления пользовательской формы CommandButton, используемый в VBA Excel для запуска и макросов. Свойства кнопки, примеры кода с ней.

Элемент управления CommandButton

UserForm.CommandButton — это элемент управления пользовательской формы, предназначенный исключительно для запуска и процедур VBA Excel.

Для запуска процедур и макросов обычно используется событие кнопки — Click.

Свойства элемента CommandButton

Свойство Описание
Автоматический размер Автоподбор размера кнопки. True — размер автоматически подстраивается под длину введенной надписи (заголовка). False — размер элемента управления определяет свойства Ширина и Высота.
Цвет задней панели Цвет элемента управления CommandButton.
Подпись Надпись (заголовок) — текст, отображаемый на кнопке.
ControlTipText Текст всплывающей подсказки при наведении курсора на кнопку.
Включено Возможность взаимодействия пользователя с системой управления CommandButton. True — взаимодействие включено, False — отключено (цвет надписи становится серым).
Шрифт Шрифт, начертание и размер текста надписи.
Высота Высота элемента управления.
Левый Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
Изображение Добавление изображения вместо заголовка или к нему.
Изображение Позиция Выравнивание изображения и текста на кнопке.
TabIndex Описание позиции элемента управления в очереди получения фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter».Отсчет начинается с 0.
Верх Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
видимый Видимость элемента управления CommandButton. True — отображается на пользовательской форме, False — скрыт.
Ширина Ширина элемента управления.
WordWrap Перенос текста заголовка на новую строку при достижении ее границы. True — перенос включен, False — перенос выключен.

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

Пример кнопки с надписью и изображение

Примеры кода VBA Excel с помощью кнопки

Изначально для реализации примеров на пользовательскую форму UserForm1 добавлена ​​кнопка CommandButton1.

Пример 1

Изменение цвета и надписи кнопки при наведении на нее курсора.

Условие пример 1
  • Действия при загрузке формы: замена заголовка формы по умолчанию на «Пример 1», замена надписи кнопки по умолчанию на «Кнопка», запись цвета кнопки по умолчанию в переменную уровень модуля.
  • Сделать, чтобы при наведении курсора на кнопку, она изменяла цвет на зеленый, а надпись «» менялась на надпись «Нажми!»
  • Добавление кода VBA Excel, который будет при удалении курсора с кнопки возвращать ей первоначальные настройки: цвет по умолчанию и надпись «Кнопка».
Решение Пример 1

1. Объявляем в разделе Объявления модуля пользовательской формы (в самом начале модуля, до процедур) переменную myColor:

2. Загружаем пользовательскую форму с заданными:

Частная подпрограмма UserForm_Initialize ()

Me.Caption = «Пример 1»

С CommandButton1

myColor = .BackColor

.Caption = «Кнопка»

End With

End Sub

3. Меняем цвет и надпись кнопки при наведении на нее курсора мыши:

Private Sub CommandButton1_MouseMove (ByVal _

Button as Integer, ByVal Shift as Integer, _

ByVal X как Single, ByVal Y как Single)

With CommandButton1

.BackColor = vbGreen

.Caption = «Нажми!»

Конец с

Концевой переводник

4. Возвращаем цвет и надпись кнопки при удалении с нее курсора мыши:

Private Sub UserForm_MouseMove (ByVal _

Button as Integer, ByVal Shift as Integer, _

ByVal X как Single, ByVal Y как Single)

With CommandButton1

.BackColor = myColor

.Caption = «Кнопка»

End With

End Sub

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

Пример 2

Запуск кода, размещенного внутри процедур обработки событий Щелкните элемент управления CommandButton:

Частная подписка CommandButton1_Click ()

MsgBox «Код внутри обработки событий Click»

End Sub

Пример 3

Запуск внешней процедуры из процедур обработки события. Щелкните элемент управления CommandButton.

Внешняя процедура, размещенная в стандартном модуле проекта VBA Excel:

Sub Test ()

MsgBox «Запуск внешней процедуры»

End Sub

Вызов внешней процедуры из кода обработки события Нажмите

  • с ключевым словом Звонок:

Частная подпрограмма CommandButton1_Click ()

Проверка вызова

Конечная подпрограмма

  • без ключевого слова Позвонить:

Частная подпрограмма CommandButton1_Click ()

Тест

Конечная подпрограмма

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

.

Программное добавление кнопок на лист Excel

Надстройка для загрузки кнопок запуска макроса на лист Excel

.

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

Решением стало создание этой надстройки — теперь достаточно диапазон диапазона ячеек на листе Excel , нажмите комбинацию клавиш типа Alt + 1 , — и через мгновение на листе создаётся зелёная кнопка с названием «Запуск», расположенная точно поверх ранее выделенных ячеек.Остаётся только назначить эту кнопку макроса, щелкнув по ней правой клавишей мыши.

Пример кода VBA для создания кнопки:

 Sub ПримерИспользования ()
    СоздатьКнопку Selection, vbGreen, "Обработать данные": End Sub
Концевой переводник 

Для вызова формы (где можно настроить текст и цвет будущей кнопки) эта комбинация клавиш Ctrl + Alt + Shift + B

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

 Функция СоздатьКнопку (ByRef ra As Range, Optional ByVal ButtonColor As Long = 255, _
                       Необязательный ByVal ButtonName $ = "Запуск", Необязательный ByVal MacroName As String = "")
    Функция рисует автофигуру (прямоугольник) поверх диапазона ячеек ra
    'и окрашивает созданную кнопку (с названием) в цвет Button_color
    'Созданной кнопке назначается макрос MacroName
    При ошибке Возобновить следующий: Err.Очистить
    w = ra.Ширина: h = ra.Height: l = ra.Left: t = ra.Top
    w = IIf (w> = 10, w, 50): h = IIf (h> = 10, h, 50) 'не создаём маленькие кнопки - минимум 10 * 10

    'добавляем кнопку на лист
    Dim sha As Shape: Установите sha = ActiveSheet.Shapes.AddShape (msoShapeRoundedRectangle, l, t, w, h)
    С sha 'оформляем автофигуру
        .Fill.Visible = msoTrue: .Fill.Solid
        .Fill.ForeColor.RGB = Цвет кнопки: .Fill.Transparency = 0,3
        .Fill.BackColor.RGB = vbWhite
        .Заполнить.TwoColorGradient msoGradientFromCenter, 2 'градиентная заливка
        .Adjustments.item (1) = 0,23: .Placement = xlFreeFloating
        .OLEFormat.Object.PrintObject = False 'кнопки не выводятся на печать
        .Line.Weight = 0,25: .Line.ForeColor.RGB = vbBlack 'делаем тонкий черный контур
        With .TextFrame 'добавляем и форматируем текст
            .Characters.Text = ButtonName $ 'добавляем текст
            С .Characters.Font изменяем начертание текста
                .Size = IIf (h> = 16, 10, 8):. Полужирный шрифт = True:
                .Color = vbBlack: .Name = "Arial" 'цвет и шрифт
            Конец с
            .HorizontalAlignment = xlCenter: .VerticalAlignment = xlVAlignCenter
        Конец с
        .onaction = MacroName 'назначаем кнопке макрос (если он задан в параметрах)
    Конец с
Конечная функция 

.

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

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