- Введение
- Системные требования
- Установка и настройка
- Быстрый старт
- Основные функции
- Работа с элементами управления
- Настройка стиля
- Создание переключателей
- Добавление иконок
- Работа с коллекцией стиля
- Устранение неполадок
- Часто задаваемые вопросы
Класс clsSlider реализует пользовательский элемент управления слайдером для VBA UserForms. Слайдер позволяет пользователям выбирать значение в заданном диапазоне, перетаскивая кнопку вдоль дорожки. Он поддерживает как горизонтальную, так и вертикальную ориентацию и предоставляет настраиваемые варианты внешнего вида и поведения.
- Применять современный дизайн к элементам управления слайдером
- Обеспечивать плавный выбор значения с визуальной обратной связью
- Настройку цветов и шрифтов для слайдеров
- Добавление иконок и визуальных элементов
- Управление видимостью и состоянием элементов управления слайдером
- Microsoft Excel (2010 или новее рекомендуется)
- Включенная поддержка VBA
- Microsoft Forms 2.0 Object Library
- Windows 7 или новее
- Откройте Excel и перейдите в редактор VBA (нажмите Alt+F11)
- В меню выберите "File" > "Import File"
- Выберите файл
clsSlider.clsиз каталогаvba-files/Class/ - Нажмите "Open" для импорта класса
- В редакторе VBA выберите "Tools" > "References"
- Найдите и установите флажок напротив "Microsoft Forms 2.0 Object Library"
- Нажмите "OK" для сохранения изменений
- В редакторе VBA создайте новую пользовательскую форму
- Добавьте элемент управления Label, который будет служить дорожкой слайдера
- Добавьте переменную класса в форму:
Dim Slider As clsSlider- Создайте новую пользовательскую форму в Excel
- Добавьте элемент управления Label для использования в качестве дорожки слайдера
- В событии
UserForm_Initializeдобавьте следующий код:
Private Sub UserForm_Initialize()
Set Slider = New clsSlider
Call Slider.Initialize(Me.Label1, 50, 0, 100, True)
End Sub- Запустите форму, чтобы увидеть элемент управления слайдером
Private Sub UserForm_Initialize()
Set Slider = New clsSlider
Call Slider.Initialize(Me.Label1, 50, 0, 100, True, , , RGB(200, 200, 200), RGB(0, 100, 200), RGB(0, 0, 0), RGB(0, 0, 0))
End SubМетод Initialize - это основной способ настройки слайдера:
- Устанавливает начальное значение, минимальное и максимальное значения
- Настраивает свойства внешнего вида
- Создает обработчики событий для взаимодействия
- Создает метку значения, если она включена
- Горизонтальная - слайдер движется влево и вправо
- Вертикальная - слайдер движется вверх и вниз
- Автоматическое определение на основе размеров элемента управления
Для слайдеров класс автоматически:
- Применяет указанный диапазон значений
- Создает подвижный элемент кнопки
- Показывает метку значения с вариантами позиционирования
- Обеспечивает визуальную обратную связь во время взаимодействия
- Обрабатывает события мыши для перетаскивания
Класс позволяет настраивать:
- Минимальные и максимальные значения
- Начальное значение
- Формат отображения значения
- Позицию метки значения
Класс предоставляет события для:
- Изменения значения во время взаимодействия
- События клика на кнопке слайдера
- Визуальная обратная связь во время перетаскивания
Класс предоставляет широкие возможности настройки цветов:
- Цвета дорожки (пустые/заполненные участки)
- Цвета кнопки
- Цвета метки значения
- Цвета фона
Цвета можно настроить при инициализации:
Slider.Initialize Me.Label1, 50, 0, 100, True, , , RGB(200, 200, 200), RGB(0, 100, 200)После инициализации можно изменить свойства:
With Slider
.BackColorFull = RGB(255, 0, 0)
.ForeColorValue = RGB(0, 0, 255)
End WithКласс позволяет:
- Устанавливать размер шрифта для меток значений
- Настройка свойств шрифта через свойство
FormatValue
Класс clsSlider не реализует переключатели напрямую. Для переключателей рассмотрите использование класса clsMultiStateCheckBox с свойством тега SWITCH.
Класс слайдера использует иконки в основном для кнопки слайдера:
- Настраиваемый внешний вид кнопки
- Поддержка символов Unicode
- Настройка шрифта для иконок
Для настройки кнопки слайдера:
- В методе Initialize укажите параметр Icon
- Или программно:
Slider.Icon = 59963 ' Использование числового значения для иконки- Иконки отображаются с использованием шрифта Segoe MDL2 Assets по умолчанию
- Цвет иконки изменяется в зависимости от состояния слайдера
- Иконки автоматически масштабируются под размер кнопки
После инициализации слайдер предоставляет доступ к своим элементам:
' Получение свойств слайдера
Dim currentValue As Single
currentValue = Slider.ValueКласс слайдера управляет одним элементом управления, но предоставляет доступ к его свойствам.
Класс слайдера сосредоточен на одном элементе управления, поэтому итерация обычно не требуется.
' Изменение свойств слайдера
With Slider
.Value = 75
.MinValue = 0
.MaxValue = 100
End With- Убедитесь, что Microsoft Forms 2.0 Object Library включена в ссылки
- Проверьте, что элемент управления Label добавлен до вызова метода Initialize
- Убедитесь, что свойство MultiUse установлено в True для класса
- Проверьте, что события элемента управления не перегружены другими обработчиками
- Убедитесь, что свойства элемента управления не изменяются вручную во время работы класса
- Проверьте, что класс не инициализируется несколько раз
- Уменьшите сложность форматирования значений
- Избегайте частых вызовов геттеров свойств во время взаимодействия
- Используйте свойства видимости и доступности должным образом
- "Object variable not set" - убедитесь, что переменная класса правильно инициализирована
- "Method or data member not found" - проверьте, что класс правильно импортирован
- "Can't assign to property" - избегайте прямого присвоения вложенным объектам без проверки на Nothing
Ответ: Используйте свойства экземпляра слайдера для изменения цветов после инициализации.
Ответ: Класс специально поддерживает функциональность слайдера с использованием элементов управления Label в качестве дорожек.
Ответ: Да, можно создать несколько экземпляров класса для разных слайдеров, но каждый экземпляр управляет одним элементом управления слайдером.
Ответ: Класс использует значения символов Unicode для иконок. Для пользовательских иконок можно использовать разные коды символов или рассмотреть использование элементов управления изображениями.
Ответ: Класс протестирован с Excel 2010 и новее. Совместимость с более ранними версиями не гарантируется.
Ответ: Текущая версия обеспечивает плавный переход значения во время перетаскивания, но прямая настройка анимации недоступна.
Ответ: Класс предоставляет события Click и изменения значения, которые можно обрабатывать в модуле формы.