VBA Excel. Первая кнопка (для начинающих)
Вставка командной кнопки на рабочий лист для начинающих программировать с нуля. Кнопки из коллекций «Элементы управления формы» и «Элементы ActiveX».
Начинаем программировать с нуля
Часть 3. Первая кнопка
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Добавление вкладки «Разработчик»
Вкладка с инструментами, связанными с VBA Excel, называется «Разработчик». Если этой вкладки нет на вашей ленте, добавьте ее через окно «Параметры»:
Кнопка – элемент управления формы
Вставка кнопки на лист
Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.
Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.
Чтобы вернуться в режим редактирования кнопки, кликните по ней правой кнопкой мыши и выберите из контекстного меню нужный пункт. Если вы хотите изменить размер или размещение кнопки перетаскиванием, кликните левой кнопкой мыши в любом месте рабочего листа. После первого клика контекстное меню закроется, а кнопка останется в режиме редактирования.
Создание процедуры для кнопки
Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.
Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.
Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».
В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».
Вставьте внутрь шаблона процедуры следующий код:
Назначение макроса форме или кнопке управления
Вы можете использовать кнопку управления формы или кнопку (ActiveX) для запуска макроса, который выполняет действие, когда пользователь щелкает его. Обе эти кнопки также называются push-кнопками, которые можно настроить для автоматизации печати, фильтрации данных или вычисления чисел. Как правило, кнопки управления формы и ActiveX похожи по внешнему виду и функции. Однако между ними есть несколько отличий, которые объясняются в следующих разделах.
Кнопка (управление формы)
В разделах ниже вы узнаете, как добавить макрос на кнопку в Excel для Windows или Mac.
Примечание: ActiveX не поддерживаются на компьютере Mac.
Макрос и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта.
Прежде всего нужно включить его. Дополнительные сведения см. в статье Показ вкладки «Разработчик».
Добавление кнопки (управление формы)
Щелкните на листе место, где должен быть расположен левый верхний угол кнопки. Появится всплывающее окно Назначение макроса.
Назначьте кнопке макрос и нажмите кнопку ОК.
Чтобы задать свойства кнопки, щелкните ее правой кнопкой мыши и выберите форматирование.
Добавление кнопки (ActiveX управления)
На вкладке Разработчик в группе Элементы управления нажмите кнопку Вставить, а затем вгруппе Элементы управления ActiveX нажмите кнопку .
Щелкните на том месте, где должен отображаться левый верхний угол кнопки.
В группе Элементы управления нажмите кнопку Код представления. При этом Visual Basic редактора. Убедитесь, что в списке справа выбрано нажатие кнопки. При нажатии кнопки CommandButton1_Click процедуры (см. рисунок ниже) запускаются эти два макроса: SelectC15 и HelloMessage.
В подпроцеду для кнопки сделайте следующее:
Введите имя существующего макроса в книге. Макрос можно найти, щелкнув Макрос в группе Код. С помощью кнопки можно запускать несколько макроса, вводя их имена в отдельных строках подпроцесса.
При необходимости добавьте собственный код VBA.
Закроем Visual Basic редактора и нажмите кнопку Режим конструктора режим конструктора, чтобы отключить режим конструктора.
Чтобы запустить код VBA, который теперь является частью кнопки, нажмите кнопку ActiveX, которую вы только что создали.
Чтобы изменить элемент ActiveX, убедитесь, что выбран режим конструктора. На вкладке Разработчик в группе Элементы управления нажмите кнопку Режим конструктора.
Примечание: Перед тем как нажать кнопку Свойства, выделите объект, свойства которого требуется просмотреть или изменить.
Появится поле Свойства. Для получения дополнительных сведений о каждом свойстве выберите свойство и нажмите клавишу F1, чтобы отобразить соответствующий раздел справка по Visual Basic. Можно также ввести имя свойства в поле Поиск справки Visual Basic. В следующей таблице 2010 2010 2016 2016 2016 2016 201
Загружает ли его при открытом книге. (Игнорируется для ActiveX элементов управления.)
Может ли он получать фокус и отвечать на события, созданные пользователем.
Можно ли изменять элемент управления
Имя элемента управления
Способ привязки элемента управления к расположенным под ним ячейкам (не закреплен, можно перемещать, но нельзя изменять размер, можно перемещать и изменять размер)
Можно ли выводить элемент управления на печать
Является ли элемент управления видимым или скрытым
Атрибуты шрифта (полужирный, курсив, размер, зачеркивание, подчеркивание и насыщенность)
Bold, Italic, Size, StrikeThrough, Underline, Weight (форма)
Поясняющий текст элемента управления, определяющий или описывающий его
Будет ли содержимое элемента управления переноситься по словам в конце строки
Размер и положение
Будет ли размер элемента управления изменяться автоматически для отображения всего содержимого
Высота или ширина в пунктах
Height, Width (форма)
Расстояние от элемента управления до левого или верхнего края листа
Стиль фона (прозрачный или непрозрачный)
Цвет переднего плана
Наличие тени элемента управления
Точечный рисунок, отображаемый в элементе управления
Положение рисунка относительно его заголовка (слева, сверху, справа и так далее)
Сочетание клавиш для элемента управления
Настраиваемый значок мыши
Тип указателя, отображаемого при наведите указатель мыши на определенный объект (стандартный, стрелка, I-указатель и так далее).
Будет ли фокус при щелчке.
Макрос и средства VBA находятся на вкладке «Разработчик», которая по умолчанию скрыта, поэтому сначала нужно включить ее.
Перейдите в Excel > параметры. > ленты & панель инструментов.
В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.
Добавление кнопки (управление формы)
Щелкните на листе место, где должен быть расположен левый верхний угол кнопки. Появится всплывающее окно Назначение макроса.
Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите назначить макрос.
Назначьте кнопке макрос и нажмите кнопку ОК.
Чтобы задать свойства кнопки, щелкните ее правой кнопкой мыши и выберите форматирование.
Добавление кнопки (Visual Basic управления)
Щелкните место на том месте, где должен отображаться левый верхний угол кнопки.
Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите назначить макрос.
В диалоговом окне Назначение макроса выберите Новый, который откроет редактор Visual Basic (VBE)в области со следующим кодом:
В подпроцеду для кнопки между строками Sub и End Sub сделайте следующее:
Введите имя существующего макроса в книге. Вы можете запускать несколько макроса с помощью кнопки, введя их имена в отдельных строках внутри под процедуры.
Добавьте собственный код VBA.
Нажмите кнопку Режим режим конструктора, чтобы режим конструктора отключен, а затем закроем Visual Basic редактора.
Чтобы задать свойства кнопки, щелкните ее правой кнопкой мыши и выберите форматирование.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Vba создать форму с кнопками
Width
frmForm1.Caption = «������»
������� 5.2. �������� ������� ����
Initialize
Activate
Deactivate
Click
Private Sub UserForm_Activate()
frmForm1.Caption = «������ �� ����� ��������� � �������»
End Sub
Private Sub UserForm_Click()
frmForm1.Width = frmForm1.Width / 2
frmForm1.Height = frmForm1.Height / 2
frmForm1.Caption = «������ ��� ��� ���!»
End Sub
������� 5.3. �������� ������ ����
Unload
Private Sub UserForm_Initialize()
Load frmForm2
frmForm2.Show
End Sub
Private Sub UserForm_Click()
frmForm2.Hide
End Sub
Private Sub UserForm_Click()
frmForm2.Show
End Sub
�������� ����������� ��������� �� ����� ����������� � ������� ������ ������������, ������� ��������� �� ����� �������� ��� ������ ��������� (���. 5.2).
frmMyForm
lblInfo
txtInput
cmdExit
chkSound
optLevel
lsbTypes
fraChoices
vcbSpeed
picChema
BackColor
Caption
Enabled
ForeColor
Picture
PicturePosition
Visible
Enabled
ForeColor
MaxLength
PasswordChar
txtResult.Text=» «
������� 5.8. �������� �������
Caption
ForeColor
Picture
PicturePosition
������� 5.9. �������� ������
ListIndex
Private Sub UserForm_Initialize()
List1.AddItem «����»
List1.AddItem «����»
List1.AddItem «�����»
List1.AddItem «������»
List1.AddItem «�������»
End Sub
Private Sub List1_DblClick()
List2.AddItem List1.Text
List1.RemoveItem
List1.ListIndex
End Sub
Private Sub List2_dblClick()
List1.AddItem List2.Text
List2.RemoveItem
List2.ListIndex
VBA Excel. Первая форма (для начинающих)
Пример создания пользовательской формы в редакторе VBA Excel для начинающих программировать с нуля. Добавление на форму текстового поля и кнопки.
Начинаем программировать с нуля
Часть 4. Первая форма
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Создание пользовательской формы
Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
В открывшемся окне редактора VBA выберите вкладку «Insert» главного меню и нажмите кнопку «UserForm». То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
На экране редактора VBA появится новая пользовательская форма с именем «UserForm1»:
Добавление элементов управления
Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:
При наведении курсора на элементы управления появляются подсказки.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.
Кликнув по элементу управления на форме, вы можете изменять его размер, перетягивая границы за белые квадратики, и перетаскивать по форме, ухватив за одну из границ. Кликнув по заголовку формы или по ее рабочему полю, вы можете также изменять ее размер, перетягивая границы за белые квадратики.
Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».
Отображение формы на экране
Чтобы запустить пользовательскую форму для просмотра из редактора VBA, необходимо выбрать ее, кликнув по заголовку или свободному от элементов управления полю, и совершить одно из трех действий:
Для запуска пользовательской формы с рабочего листа Excel, можно использовать кнопки, описанные в этой статье. Например, чтобы отобразить форму с помощью «кнопки – элемента ActiveX», используйте в модуле рабочего листа следующий код:
VBA Excel. Программное создание формы
Программное создание пользовательской формы из кода VBA Excel. Добавление на форму кнопки и события Click в модуль созданной формы. Удаление формы.
Программная работа с формой
Создание
Пользовательская форма программно (динамически) может быть создана только как элемент коллекции VBComponents проекта VBA:
Число (3) означает, что создается форма, если заменить его на (1), будет создан стандартный модуль.
Значения свойствам формы myForm, как элемента коллекции VBComponents, присваиваются следующим образом:
Присвоенные значения параметров динамической формы, как элемента коллекции VBComponents, сохраняются при закрытии формы.
Для элемента коллекции UserForms присвоение значений свойств будет выглядеть следующим образом:
Присвоенные значения параметров динамической формы, как элемента коллекции UserForms, не сохраняются при закрытии формы.
Я не рекомендую работать из кода VBA Excel с программно созданной формой, как элементом коллекции UserForms, кроме случая, когда необходимо отобразить динамическую форму на экране. В других случаях можно получить непредсказуемые результаты, например, могут не работать программно созданные кнопки, а также они будут исчезать при закрытии формы.
Отображение
Здесь возникает проблема: у динамической формы, созданной как элемент коллекции VBComponents, нет метода, который позволил бы ее отобразить на экране.
Чтобы обойти это препятствие, преобразуем нашу форму myForm в элемент коллекции UserForms, как в предыдущем примере, и выводим ее на экран с помощью метода Show: