- Обзор класса
- Архитектура класса
- Свойства
- Методы
- События
- Константы и перечисления
- Детали реализации
- Зависимости
Проект VBA Modern Style UserForms представляет собой библиотеку классов VBA, предназначенную для стилизации элементов управления MSForms в Excel. Основной класс clsModernStyle реализует современные визуальные эффекты, анимации и улучшенную визуальную обратную связь для пользовательских форм.
Класс clsModernStyle разработан для применения современного дизайна к элементам управления MSForms с реализациями визуальных эффектов, таких как анимация фокуса, настройка цвета и шрифта, добавление иконок и визуальных элементов.
- Применение современного стиля к различным элементам управления (TextBox, ComboBox, ListBox, CheckBox, OptionButton и др.)
- Поддержка анимации фокуса
- Настройка цвета и шрифта
- Добавление иконок и визуальных элементов
- Управление видимостью и состоянием элементов управления
Класс использует события для отслеживания изменений в элементах управления:
Private WithEvents mUserForm As MSForms.UserForm
Private WithEvents mTextBox As MSForms.TextBox
Private WithEvents mComboBox As MSForms.ComboBox
Private WithEvents mListBox As MSForms.ListBox
Private WithEvents mFrame As MSForms.Frame
Private WithEvents mLabel As MSForms.label
Private WithEvents mCommandButton As MSForms.CommandButton
Private WithEvents mCheckBox As MSForms.CheckBox
Private WithEvents mOptionButton As MSForms.OptionButtonКласс хранит информацию об элементах управления в коллекции:
mStyleItems- коллекция всех стилевых элементовmControl- основной элемент управленияmControlType- тип элемента управленияmControlName- имя элемента управленияmControlTipText- текст всплывающей подсказки
| Свойство | Тип | Описание |
|---|---|---|
control |
MSForms.control | Основной элемент управления, который стилизуется |
ControlType |
String | Тип элемента управления (например, "TextBox", "ComboBox") |
Name |
String | Имя элемента управления |
ControlTipText |
String | Текст всплывающей подсказки для элемента управления |
Visible |
Boolean | Видимость элемента управления и всех связанных с ним стилевых элементов |
Locked |
Boolean | Состояние блокировки элемента управления и всех связанных с ним стилевых элементов |
Enabled |
Boolean | Состояние доступности элемента управления и всех связанных с ним стилевых элементов |
top |
Single | Верхняя позиция элемента управления |
left |
Single | Левая позиция элемента управления |
height |
Single | Высота элемента управления |
width |
Single | Ширина элемента управления |
FontSizeTitleOff |
Integer | Размер шрифта для неактивного состояния |
FontSizeTitleOn |
Integer | Размер шрифта для активного состояния |
FontName |
String | Имя шрифта для элемента управления |
control- Получает или устанавливает основной элемент управления, который будет стилизованControlType- Получает или устанавливает тип элемента управления (например, "TextBox", "ComboBox")Name- Получает или устанавливает имя элемента управленияControlTipText- Получает или устанавливает текст всплывающей подсказки для элемента управления
Visible- Получает или устанавливает видимость элемента управления и всех связанных с ним стилевых элементовLocked- Получает или устанавливает состояние блокировки элемента управления и всех связанных с ним стилевых элементовEnabled- Получает или устанавливает состояние доступности элемента управления и всех связанных с ним стилевых элементов
top- Получает или устанавливает верхнюю позицию элемента управленияleft- Получает или устанавливает левую позицию элемента управленияheight- Получает или устанавливает высоту элемента управленияwidth- Получает или устанавливает ширину элемента управления
FontSizeTitleOff- Получает или устанавливает размер шрифта для неактивного состоянияFontSizeTitleOn- Получает или устанавливает размер шрифта для активного состоянияFontName- Получает или устанавливает имя шрифта для элемента управления
ColorBarTitleOn- Получает или устанавливает цвет заголовка при активном состоянииColorBarTitleOff- Получает или устанавливает цвет заголовка при неактивном состоянииColorBarBottomOn- Получает или устанавливает цвет нижней линии при активном состоянииColorBarBottomOff- Получает или устанавливает цвет нижней линии при неактивном состоянииColorBackGroundOn- Получает или устанавливает цвет фона при активном состоянииColorBackGroundOff- Получает или устанавливает цвет фона при неактивном состоянииColorBarIconOn- Получает или устанавливает цвет иконки при активном состоянииColorBarIconOff- Получает или устанавливает цвет иконки при неактивном состоянииColorDropArrowOn- Получает или устанавливает цвет стрелки выпадающего списка при активном состоянииColorDropArrowOff- Получает или устанавливает цвет стрелки выпадающего списка при неактивном состоянииColorTgBorderOn- Получает или устанавливает цвет границы переключателя при активном состоянииColorTgBorderOff- Получает или устанавливает цвет границы переключателя при неактивном состоянииColorChkBoxBtnOn- Получает или устанавливает цвет кнопки флажка при активном состоянииColorChkBoxBtnOff- Получает или устанавливает цвет кнопки флажка при неактивном состоянииColorChkBoxCaptionOn- Получает или устанавливает цвет заголовка флажка при активном состоянииColorChkBoxCaptionOff- Получает или устанавливает цвет заголовка флажка при неактивном состоянии
ChrDropArrowOn- Получает или устанавливает символ стрелки выпадающего списка при активном состоянииChrDropArrowOff- Получает или устанавливает символ стрелки выпадающего списка при неактивном состоянииChrChkBoxBtnOn- Получает или устанавливает символ кнопки флажка при активном состоянииChrChkBoxBtnOff- Получает или устанавливает символ кнопки флажка при неактивном состоянииChrOptBoxBtnOn- Получает или устанавливает символ переключателя при активном состоянииChrOptBoxBtnOff- Получает или устанавливает символ переключателя при неактивном состоянии
BarBottom- Получает или устанавливает нижнюю линию элемента управленияBarTitle- Получает или устанавливает заголовок элемента управленияBarIcon- Получает или устанавливает иконку элемента управленияBackGround- Получает или устанавливает фон элемента управленияDropArrow- Получает или устанавливает стрелку выпадающего спискаBtnClear- Получает или устанавливает кнопку очисткиTgBorder- Получает или устанавливает границу переключателяChkBoxBtn- Получает или устанавливает кнопку флажкаChkBoxCaption- Получает или устанавливает заголовок флажка
StyleItems- Получает или устанавливает коллекцию всех стилевых элементовCount- Получает количество элементов в коллекцииgetItemByIndex- Получает элемент из коллекции по индексуgetItemByName- Получает элемент из коллекции по имениVersion- Получает информацию о версии класса
Initialize- Инициализация стиля для всех элементов управления формы
Синтаксис:
Public Sub Initialize(ByRef Form As MSForms.UserForm, _
Optional ColorBarTitleOn As XlRgbColor = 14854934, _
Optional ColorBarTitleOff As XlRgbColor = 10395294, _
Optional ColorBarBottomOn As XlRgbColor = 14854934, _
Optional ColorBarBottomOff As XlRgbColor = 10395294, _
Optional ColorBackGroundOn As XlRgbColor = vbWhite, _
Optional ColorBackGroundOff As XlRgbColor = 16447476, _
Optional ColorBarIconOn As XlRgbColor = 14854934, _
Optional ColorBarIconOff As XlRgbColor = 10395294, _
Optional ColorDropArrowOn As XlRgbColor = vbBlack, _
Optional ColorDropArrowOff As XlRgbColor = 10395294, _
Optional ColorTgBorderOn As XlRgbColor = 14854934, _
Optional ColorTgBorderOff As XlRgbColor = 10395294, _
Optional ColorChkBoxBtnOn As XlRgbColor = vbBlack, _
Optional ColorChkBoxBtnOff As XlRgbColor = 10395294, _
Optional ChrDropArrowOn As enumIcons = ArrowOn, _
Optional ChrDropArrowOff As enumIcons = ArrowOff, _
Optional ColorChkBoxCaptionOn As XlRgbColor = 14854934, _
Optional ColorChkBoxCaptionOff As XlRgbColor = 10395294, _
Optional ChrChkBoxBtnOn As enumIcons = CheckboxComposite, _
Optional ChrChkBoxBtnOff As enumIcons = CheckBox1, _
Optional ChrOptBoxBtnOn As enumIcons = CircleFill, _
Optional ChrOptBoxBtnOff As enumIcons = CircleRing)Параметры:
Form- ссылка на UserForm, к которому применяется стильColorBarTitleOn- цвет заголовка в активном состоянии (по умолчанию 14854934)ColorBarTitleOff- цвет заголовка в неактивном состоянии (по умолчанию 10395294)ColorBarBottomOn- цвет нижней линии в активном состоянии (по умолчанию 14854934)ColorBarBottomOff- цвет нижней линии в неактивном состоянии (по умолчанию 10395294)ColorBackGroundOn- цвет фона в активном состоянии (по умолчанию vbWhite)ColorBackGroundOff- цвет фона в неактивном состоянии (по умолчанию 1647476)ColorBarIconOn- цвет иконки в активном состоянии (по умолчанию 14854934)ColorBarIconOff- цвет иконки в неактивном состоянии (по умолчанию 10395294)ColorDropArrowOn- цвет стрелки выпадающего списка в активном состоянии (по умолчанию vbBlack)ColorDropArrowOff- цвет стрелки выпадающего списка в неактивном состоянии (по умолчанию 10395294)ColorTgBorderOn- цвет границы переключателя в активном состоянии (по умолчанию 14854934)ColorTgBorderOff- цвет границы переключателя в неактивном состоянии (по умолчанию 10395294)ColorChkBoxBtnOn- цвет кнопки флажка в активном состоянии (по умолчанию vbBlack)ColorChkBoxBtnOff- цвет кнопки флажка в неактивном состоянии (по умолчанию 10395294)ChrDropArrowOn- символ стрелки выпадающего списка в активном состоянии (по умолчанию ArrowOn)ChrDropArrowOff- символ стрелки выпадающего списка в неактивном состоянии (по умолчанию ArrowOff)ColorChkBoxCaptionOn- цвет заголовка флажка в активном состоянии (по умолчанию 14854934)ColorChkBoxCaptionOff- цвет заголовка флажка в неактивном состоянии (по умолчанию 10395294)ChrChkBoxBtnOn- символ кнопки флажка в активном состоянии (по умолчанию CheckboxComposite)ChrChkBoxBtnOff- символ кнопки флажка в неактивном состоянии (по умолчанию CheckBox1)ChrOptBoxBtnOn- символ переключателя в активном состоянии (по умолчанию CircleFill)ChrOptBoxBtnOff- символ переключателя в неактивном состоянии (по умолчанию CircleRing)
ApplyControlStyle- применение стиля в зависимости от типа элемента управленияSetCommonStyleProperties- установка общих свойств стиля для элемента управленияsetTextBoxStyle- установка стиля для текстового поляsetComboBoxStyle- установка стиля для комбинированного поляsetListBoxStyle- установка стиля для списка
CreateStyledLabel- создание и настройка основных свойств дополнительного элементаSetCommonFontProperties- установка общих свойств шрифта для элемента управленияaddBarBottom- добавление нижней линии стиля для элемента управленияaddBarTitle- добавление заголовка стиля для элемента управленияaddBarIcon- добавление иконки стиля для элемента управленияaddBackGround- добавление фона стиля для элемента управленияaddDropArrow- добавление стрелки выпадающего списка стиля для элемента управленияaddBtnClear- добавление кнопки очистки стиля для элемента управленияaddCheckBox- добавление стиля флажка для элемента управленияaddCheckBoxSwitch- добавление стиля переключателя для элемента управления
HandleExitEvent- сброс стиля для всех элементов управленияexitControl- сброс стиля элемента управления при потере фокусаbtnClearVisible- управление видимостью кнопки очистки для элемента управленияHandleEnterEvent- активация стиля элемента управления при получении фокуса
mTextBox_Change- событие изменения текста в текстовом полеmTextbox_MouseDown- событие нажатия мыши на текстовом полеmTextbox_KeyUp- событие отпускания клавиши при фокусе на текстовом поле
mComboBox_Change- событие изменения значения в комбинированном полеmComboBox_KeyUp- событие отпускания клавиши при фокусе на комбинированном полеmComboBox_MouseDown- событие нажатия мыши на комбинированном поле
mListBox_Change- событие изменения значения в спискеmListBox_MouseDown- событие нажатия мыши на спискеmListBox_KeyUp- событие отпускания клавиши при фокусе на списке
mUserForm_Click- событие клика по пользовательской формеmFrame_Click- событие клика по фреймуmLabel_Click- событие клика по меткеmCommandButton_Click- событие клика по командной кнопке
mDropArrow_Click- событие клика по стрелке выпадающего спискаmBtnClear_Click- событие клика по кнопке очисткиmChkBoxBtn_Click- событие клика по кнопке флажкаmTgBorder_Click- событие клика по границе переключателяmCheckBox_Change- событие изменения состояния флажкаmChkBoxCaption_Click- событие клика по заголовку флажкаmOptionButton_Change- событие изменения состояния переключателя
Public Enum enumIcons
ArrowOff = &HE011 ' Стрелка выпадающего списка (выкл)
ArrowOn = &HE010 ' Стрелка выпадающего списка (вкл)
CheckBox1 = 59193 ' Квадрат (обычный)
Checkbox14 = 61803 ' Квадрат (маленький)
CheckboxComposite = 59194 ' Квадрат с галочкой
CheckboxComposite14 = 61804 ' Квадрат с галочкой (маленький)
CheckboxCompositeReversed = 59197 ' Квадрат с галочкой (обратный)
CheckboxIndeterminateCombo = 61806 ' Квадрат с тире
CheckboxIndeterminateCombo14 = 61805 ' Квадрат с тире (маленький)
CheckboxFill = 59195 ' Квадрат (заполненный)
CheckMark = 59198 ' Галочка
CircleFill = 59963 ' Круг (заполненный)
CircleRing = 59962 ' Круг (контур)
FavoriteStar = 59188 ' Звезда (обычная)
FavoriteStarFill = 59189 ' Звезда (заполненная)
Heart = 60241 ' Сердце (обычное)
HeartFill = 60242 ' Сердце (заполненное)
InkingColorFill = 60775 ' Кисть (заполненная)
InkingColorOutline = 60774 ' Кисть (контур)
PaginationDotOutline10 = 61734 ' Точка (контур)
PaginationDotSolid10 = 61735 ' Точка (заполненная)
PasswordChar = 149 ' Символ для скрытия пароля
RadioBtnOff = 60618 ' Радио кнопка (выкл)
RadioBtnOn = 60619 ' Радио кнопка (вкл)
ToggleOff = 60434 ' Переключатель (выкл)
ToggleOn = 60433 ' Переключатель (вкл)
ToggleThumb = 60436 ' Ползунок переключателя
End Enum' Константы шрифта
Private Const FONT_NAME_ICON As String = "Segoe MDL2 Assets"
' Константы для типов элементов управления
Private Const CONTROL_TYPE_TEXTBOX As String = "TextBox"
Private Const CONTROL_TYPE_COMBOBOX As String = "ComboBox"
Private Const CONTROL_TYPE_LISTBOX As String = "ListBox"
Private Const CONTROL_TYPE_CHECKBOX As String = "CheckBox"
Private Const CONTROL_TYPE_OPTIONBUTTON As String = "OptionButton"
Private Const CONTROL_TYPE_FRAME As String = "Frame"
Private Const CONTROL_TYPE_LABEL As String = "Label"
Private Const CONTROL_TYPE_COMMANDBUTTON As String = "CommandButton"
Private Const CONTROL_TYPE_MULTI_PAGE As String = "MultiPage"
Private Const CONTROL_TYPE_IMAGE As String = "Image"
Private Const CONTROL_TYPE_TABSTRIP As String = "TabStrip"
Private Const CONTROL_TYPE_SCROLLBAR As String = "ScrollBar"
Private Const CONTROL_TYPE_SPINBUTTON As String = "SpinButton"
' Константы для дополнительных имен элементов управления
Private Const BAR_BOTTOM As String = "_barBottom"
Private Const BAR_TITLE As String = "_barTitle"
Private Const BAR_ICON As String = "_barIcon"
Private Const BACK_GROUND As String = "_BackGround"
Private Const DROP_ARROW As String = "_DropArrow"
Private Const BTN_CLEAR As String = "_BtnClear"
' Константы для поведения элементов управления
Private Const CONTROL_SWITCH As String = "SWITCH"UpdateSwitchState- внутренний метод для обновления состояния переключателяUpdateSwitchVisualState- внутренний метод для обновления визуального состояния переключателяIsControlActive- вспомогательный метод для проверки активности элемента управленияConfigureStyleElement- внутренний метод для настройки свойств элемента стиляIsControlInCollection- проверка наличия элемента управления в коллекцииSetControlEnabled- внутренний метод для установки состояния доступности элемента управленияSetControlVisibility- внутренний метод для установки видимости элемента управленияSetControlLock- внутренний метод для установки состояния блокировки элемента управления
Class_Terminate- очистка объектов при завершении работы класса
- Microsoft Forms 2.0 Object Library
- Среда выполнения VBA