- Обзор класса
- Архитектура класса
- Свойства
- Методы
- События
- Константы и перечисления
- Детали реализации
- Зависимости
Класс clsSlider реализует пользовательский элемент управления слайдером для VBA UserForms. Слайдер позволяет пользователям выбирать значение в заданном диапазоне, перетаскивая кнопку вдоль дорожки. Он поддерживает как горизонтальную, так и вертикальную ориентацию и предоставляет настраиваемые варианты внешнего вида и поведения.
- Поддержка горизонтальной и вертикальной ориентации
- Настраиваемые значения минимума/максимума и начальное значение
- Настраиваемый внешний вид (цвета, иконки, форматирование)
- Видимая/скрытая метка значения с возможностью позиционирования
- Обработка событий для изменений значения и кликов
- Функция блокировки для предотвращения взаимодействия пользователя
- Автоматическое позиционирование метки значения (верх, лево, право, низ)
Определяет возможные позиции для метки значения слайдера:
Top(1) - метка значения появляется над слайдеромLeft- метка значения появляется слева от слайдераRight- метка значения появляется справа от слайдераBottom- метка значения появляется под слайдером
| Свойство | Тип | Описание |
|---|---|---|
Value |
Single | Текущее значение слайдера |
MinValue |
Single | Минимальное значение слайдера |
MaxValue |
Single | Максимальное значение слайдера |
IsHorizontal |
Boolean | Флаг для горизонтальной ориентации |
Locked |
Boolean | Флаг для блокировки слайдера |
Visible |
Boolean | Состояние видимости всех элементов слайдера |
Enabled |
Boolean | Состояние доступности слайдера |
VisibleLabelValue |
Boolean | Состояние видимости метки значения слайдера |
ForeColorValue |
XlRgbColor | Цвет текста метки значения слайдера |
ForeColorBtn |
XlRgbColor | Цвет текста кнопки слайдера |
BackColorFull |
XlRgbColor | Цвет заполненной части линии слайдера |
BackColorEmpty |
XlRgbColor | Цвет пустой части линии слайдера |
PositionLabelValue |
PositionValue | Позиция метки значения слайдера |
FormatValue |
String | Формат для отображения значения слайдера |
ForeColorValue |
XlRgbColor | Цвет текста метки значения слайдера |
ForeColorBtn |
XlRgbColor | Цвет текста кнопки слайдера |
Name |
String | Имя основной метки слайдера |
Icon |
Long | Иконка на кнопке слайдера (в виде значения символа Unicode) |
Value- Получает или устанавливает текущее значение слайдераMinValue- Получает или устанавливает минимальное значение слайдераMaxValue- Получает или устанавливает максимальное значение слайдераIsHorizontal- Получает, является ли слайдер горизонтальнымLocked- Получает или устанавливает состояние блокировки слайдераVisible- Получает или устанавливает состояние видимости всех элементов слайдераEnabled- Получает или устанавливает состояние доступности слайдераVisibleLabelValue- Получает или устанавливает состояние видимости метки значения слайдераForeColorValue- Получает или устанавливает цвет текста метки значения слайдераForeColorBtn- Получает или устанавливает цвет текста кнопки слайдераBackColorFull- Получает или устанавливает цвет заполненной части линии слайдераBackColorEmpty- Получает или устанавливает цвет пустой части линии слайдераPositionLabelValue- Получает или устанавливает позицию метки значения слайдераFormatValue- Получает или устанавливает формат для отображения значения слайдераName- Получает имя основной метки слайдераIcon- Получает или устанавливает иконку на кнопке слайдера
Version- Получает информацию о версии классаItems- Получает коллекцию всех элементов слайдераCount- Получает количество элементов в коллекции
Инициализирует слайдер с указанными параметрами.
Синтаксис:
Public Sub Initialize(ByRef labelSlider As MSForms.Label, _
ByVal Value As Single, _
ByVal MinValue As Single, _
ByVal MaxValue As Single, _
ByVal VisibleLabelValue As Boolean, _
Optional FormatValue As String = vbNullString, _
Optional PositionValue As PositionValue = Top, _
Optional BackColorEmpty As XlRgbColor = rgbLightGray, _
Optional BackColorFull As XlRgbColor = rgbGreenYellow, _
Optional ForeColorBtn As XlRgbColor = rgbBlack, _
Optional ForeColorValue As XlRgbColor = rgbBlack, _
Optional Icon As Long = 5963)Параметры:
labelSlider- основная метка, которая будет использоваться как пустая линия слайдераValue- начальное значение слайдераMinValue- минимальное значение слайдераMaxValue- максимальное значение слайдераVisibleLabelValue- видимость метки значенияFormatValue- формат для отображения значения (по умолчанию vbNullString)PositionValue- позиция метки значения (по умолчанию Top)BackColorEmpty- цвет пустой части линии (по умолчанию rgbLightGray)BackColorFull- цвет заполненной части линии (по умолчанию rgbGreenYellow)ForeColorBtn- цвет кнопки (по умолчанию rgbBlack)ForeColorValue- цвет значения (по умолчанию rgbBlack)Icon- иконка на кнопке (по умолчанию 59963)
Событие, вызываемое при клике на кнопку слайдера.
Синтаксис:
Private Sub mLabelBtn_Click()Событие, вызываемое при изменении значения слайдера.
Синтаксис:
Private Sub mLabelBtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)Public Enum PositionValue
Top = 1 ' Позиция метки значения над слайдером
Left ' Позиция метки значения слева от слайдера
Right ' Позиция метки значения справа от слайдера
Bottom ' Позиция метки значения под слайдером
End EnumКласс поддерживает как горизонтальную, так и вертикальную ориентацию:
- Горизонтальная: слайдер движется влево и вправо
- Вертикальная: слайдер движется вверх и вниз
Слайдер состоит из нескольких визуальных элементов:
- Основная линия слайдера (пустая часть)
- Заполненная линия слайдера (заполненная часть)
- Кнопка слайдера (подвижный элемент)
- Метка значения (отображает текущее значение)
Класс автоматически обрабатывает события слайдера:
Click- вызывает событие Click при клике на кнопкуMouseMove- обновляет позицию и значение слайдера при перетаскивании
- Библиотека MSForms для элементов управления Label
- Константы XlRgbColor для свойств цвета