Skip to content

Latest commit

 

History

History
238 lines (189 loc) · 14.1 KB

File metadata and controls

238 lines (189 loc) · 14.1 KB

Руководство пользователя для clsSlider

Содержание

  1. Введение
  2. Системные требования
  3. Установка и настройка
  4. Быстрый старт
  5. Основные функции
  6. Работа с элементами управления
  7. Настройка стиля
  8. Создание переключателей
  9. Добавление иконок
  10. Работа с коллекцией стиля
  11. Устранение неполадок
  12. Часто задаваемые вопросы

Введение

Класс clsSlider реализует пользовательский элемент управления слайдером для VBA UserForms. Слайдер позволяет пользователям выбирать значение в заданном диапазоне, перетаскивая кнопку вдоль дорожки. Он поддерживает как горизонтальную, так и вертикальную ориентацию и предоставляет настраиваемые варианты внешнего вида и поведения.

Что может делать этот проект:

  • Применять современный дизайн к элементам управления слайдером
  • Обеспечивать плавный выбор значения с визуальной обратной связью
  • Настройку цветов и шрифтов для слайдеров
  • Добавление иконок и визуальных элементов
  • Управление видимостью и состоянием элементов управления слайдером

Системные требования

  • Microsoft Excel (2010 или новее рекомендуется)
  • Включенная поддержка VBA
  • Microsoft Forms 2.0 Object Library
  • Windows 7 или новее

Установка и настройка

Шаг 1: Импорт класса

  1. Откройте Excel и перейдите в редактор VBA (нажмите Alt+F11)
  2. В меню выберите "File" > "Import File"
  3. Выберите файл clsSlider.cls из каталога vba-files/Class/
  4. Нажмите "Open" для импорта класса

Шаг 2: Настройка ссылок

  1. В редакторе VBA выберите "Tools" > "References"
  2. Найдите и установите флажок напротив "Microsoft Forms 2.0 Object Library"
  3. Нажмите "OK" для сохранения изменений

Шаг 3: Создание пользовательской формы

  1. В редакторе VBA создайте новую пользовательскую форму
  2. Добавьте элемент управления Label, который будет служить дорожкой слайдера
  3. Добавьте переменную класса в форму:
Dim Slider As clsSlider

Быстрый старт

Простой пример использования

  1. Создайте новую пользовательскую форму в Excel
  2. Добавьте элемент управления Label для использования в качестве дорожки слайдера
  3. В событии UserForm_Initialize добавьте следующий код:
Private Sub UserForm_Initialize()
    Set Slider = New clsSlider
    Call Slider.Initialize(Me.Label1, 50, 0, 100, True)
End Sub
  1. Запустите форму, чтобы увидеть элемент управления слайдером

Пример с настройкой цветов

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 - это основной способ настройки слайдера:

  • Устанавливает начальное значение, минимальное и максимальное значения
  • Настраивает свойства внешнего вида
  • Создает обработчики событий для взаимодействия
  • Создает метку значения, если она включена

Поддерживаемые ориентации

  • Горизонтальная - слайдер движется влево и вправо
  • Вертикальная - слайдер движется вверх и вниз
  • Автоматическое определение на основе размеров элемента управления

Работа с элементами управления

Конфигурация слайдера

Для слайдеров класс автоматически:

  • Применяет указанный диапазон значений
  • Создает подвижный элемент кнопки
  • Показывает метку значения с вариантами позиционирования
  • Обеспечивает визуальную обратную связь во время взаимодействия
  • Обрабатывает события мыши для перетаскивания

Диапазон значений

Класс позволяет настраивать:

  • Минимальные и максимальные значения
  • Начальное значение
  • Формат отображения значения
  • Позицию метки значения

Обработка событий

Класс предоставляет события для:

  • Изменения значения во время взаимодействия
  • События клика на кнопке слайдера
  • Визуальная обратная связь во время перетаскивания

Настройка стиля

Цветовые схемы

Класс предоставляет широкие возможности настройки цветов:

  • Цвета дорожки (пустые/заполненные участки)
  • Цвета кнопки
  • Цвета метки значения
  • Цвета фона

Настройка через метод 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
  • Настройка шрифта для иконок

Установка иконок

Для настройки кнопки слайдера:

  1. В методе Initialize укажите параметр Icon
  2. Или программно:
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?

Ответ: Класс протестирован с Excel 2010 и новее. Совместимость с более ранними версиями не гарантируется.

Вопрос: Можно ли настроить анимацию?

Ответ: Текущая версия обеспечивает плавный переход значения во время перетаскивания, но прямая настройка анимации недоступна.

Вопрос: Как обработать события элементов слайдера?

Ответ: Класс предоставляет события Click и изменения значения, которые можно обрабатывать в модуле формы.