Skip to content

Latest commit

 

History

History
119 lines (93 loc) · 8.3 KB

File metadata and controls

119 lines (93 loc) · 8.3 KB

Класс VBA TextBox Masks

Русский | English | UserForms-Class-ALL

clsTextboxMask - это мощный класс для VBA, который позволяет создавать текстовые поля с масками ввода в Excel и других приложениях Office. Он обеспечивает валидацию ввода, отображение плейсхолдеров и визуальное указание статуса заполнения поля.

Демонстрация проекта

Содержание

  1. Возможности
  2. Компоненты
  3. Установка
  4. Быстрый старт
  5. Основные функции
  6. Работа с элементами управления
  7. Настройка стиля
  8. Устранение неполадок

Возможности

  • Поддержка различных типов масок ввода (цифры, даты, время, текст, регулярные выражения)
  • Валидация ввода в реальном времени
  • Отображение плейсхолдеров с различными статусами (пустое, частично заполненное, полностью заполненное, неверное)
  • Визуальная индикация корректности ввода через цвет границы
  • Поддержка числовых значений с ограничениями по диапазону, знаку и наличию десятичных знаков
  • Поддержка переменной длины текста
  • Поддержка валидации через регулярные выражения
  • Поддержка настройки цвета плейсхолдера в зависимости от статуса поля
  • Поддержка шаблонов плейсхолдера с маркерами: {mask}, {filled}, {remaining}, {holder}, {RegexPattern}, {RegexFilter}, {percent}

Компоненты

  • clsTextboxMask.cls: Основная реализация класса текстового поля с маской
  • frmTestClass.frm: Тестовая форма, демонстрирующая использование
  • modShowForms.bas: Модуль, содержащий функции отображения форм
  • Документация в папке docs/:
  • docs/technical_documentation_rus.md - Техническая документация на русском языке
  • docs/technical_documentation_eng.md - Техническая документация на английском языке
  • docs/user_guide_rus.md - Руководство пользователя на русском языке
  • docs/user_guide_eng.md - Руководство пользователя на английском языке
  • docs/implementation_examples_rus.md - Примеры реализации на русском языке
  • docs/implementation_examples_eng.md - Примеры реализации на английском языке

Установка

  1. Скопируйте файл clsTextboxMask.cls в ваш проект VBA
  2. Используйте класс в ваших UserForms

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

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

' Создайте экземпляр класса clsTextboxMask
Dim numField As clsTextboxMask
Set numField = New clsTextboxMask

' Добавьте числовое поле с ограничениями
Call numField.AddFieldNumeric(inputTextBox:=Me.TextBox1, _
                             minValue:=0, _
                             maxValue:=100, _
                             allowDecimal:=True, _
                             allowNegative:=False)

' Класс автоматически применяет маску ввода к элементу управления

Основные функции

  • Инициализация маски: Методы AddFieldNumeric, AddFieldDate, AddFieldTime, AddFieldText, AddFieldVariableLength, AddFieldRegex позволяют применить соответствующую маску к текстовому полю
  • Валидация ввода: Автоматическая проверка корректности ввода в реальном времени
  • Отображение плейсхолдеров: Динамическое изменение текста плейсхолдера в зависимости от состояния поля
  • Цветовая индикация: Визуальная индикация корректности ввода через изменение цвета границы
  • Поддержка различных форматов: Поддержка числовых, текстовых, дат, времени и регулярных выражений

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

Класс clsTextboxMask добавляет функциональность маски ввода к элементам TextBox с возможностью:

  • Установки минимальных и максимальных значений для числовых полей
  • Определения формата даты и времени
  • Применения текстовых масок с различными символами
  • Использования регулярных выражений для валидации
  • Настройки цветов границы и плейсхолдера

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

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

  • Цвета границы при корректном и некорректном вводе
  • Цвета текста плейсхолдера для различных состояний
  • Форматы отображения чисел, дат и времени
  • Шаблоны плейсхолдеров с использованием маркеров

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

' Настройка цветов при добавлении числового поля
Call numField.AddFieldNumeric(inputTextBox:=Me.TextBox1, _
                             minValue:=0, _
                             maxValue:=100, _
                             allowDecimal:=True, _
                             allowNegative:=False, _
                             BorderColorValid:=RGB(0, 150, 0), _
                             BorderColorInvalid:=RGB(200, 0, 0), _
                             PlaceholderColor:=RGB(150, 150, 150))

Устранение неполадок

Проблемы с отображением

  • Убедитесь, что Microsoft Forms 2.0 Object Library включена в ссылки
  • Проверьте, что элементы управления добавлены до вызова методов класса
  • Убедитесь, что свойство MultiUse установлено в True для класса

Проблемы с взаимодействием

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

Лицензия

Этот проект лицензирован в соответствии с Apache License 2.0 - см. файл LICENSE для получения подробностей.