Немного об интересном свойстве Tag
Каждый объект UserForm и каждый элемент управления имеют свойство Tag. Оно не содержит конкретные данные и по умолчанию не имеет значения. Свойство Tag можно использовать для хранения информации, которая будет применена в программе.
Пример использования свойства Tag
Допустим, мы создаем набор элементов управления TextBox в пользовательском диалоговом окне. От пользователя требуется ввести текст только в некоторые из них, а в остальные поля вводить текст необязательно. В этом случае можно использовать свойство Tag для идентификации полей, которые необходимо заполнять. Значение свойства Tag может быть, например, строкой "Required" (т.е. обязательный).
📌 Скачать файл пример, можно в конце статьи.
Таким образом, при написании кода обработки данных, введенных пользователем, можно ссылаться на свойство Tag.
Для начала создадим форму:
Назовём элементы управления (ЭУ) TextBox соответственно: TextBox_Фамилия, TextBox_Имя, TextBox_Отчество, TextBox_ДР (день рождения).
Я решил, что TextBox(ы): TextBox_Фамилия, TextBox_Имя и TextBox_Отчество являются обязательными для заполнения, а TextBox_ДР не обязательным.
У обязательных ЭУ в свойстве Tag прописываем "Required":
Для вызова формы в обычном модуле прописываем макрос:
Эту процедуру «вешаем» на кнопку:
Пример функции для проверки текстовых полей
Напишем функцию (в модуле формы), которая проверяет все элементы управления TextBox объекта UserForm1 и возвращает количество пустых текстовых полей, которые требуют ввода информации (то есть тех, у которых свойство Tag равно "Required").
Каждая строка процедуры прокомментирована. Убедитесь сами (если плохо видно на скриншоте, то в скачанном файле можно разобраться).
Заходим в редактор и дважды нажимая на кнопку Проверить ЭУ CommandButton1 "проваливаемся" в модуль формы,
где возникает пустой код кнопки CommandButton1:
Пропишем в ней единственную строку вызова нашей функции
А теперь попробуем поиграться:
То, что я не заполнил TextBox "TextBox_ДР" процедура даже не заметила, а вот то, что я не заполнил "TextBox_Отчество", вызвала у программы негативные ощущения, о чём она незамедлительно мне сообщила.
Подводя итог, скажу, что свойство Tag помогает в обработке данных. В нашем примере оно позволяет определить, какие текстовые поля необходимо заполнить, что упрощает проверку введенных данных.