Найти тему
VBA Excel с нуля

VBA Excel № 154. Как использовать свойство Tag

Оглавление
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Немного об интересном свойстве 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 помогает в обработке данных. В нашем примере оно позволяет определить, какие текстовые поля необходимо заполнить, что упрощает проверку введенных данных.

СКАЧАТЬ ФАЙЛ ПРИМЕР