ОбъявлениеВариант Явный в верхней части вашего кода модуль сообщает VBA, что вы должны объявить все переменные, которые вы используете в коде. Если эта команда не указана, вы можете использовать переменные, которые вы не объявили. Мы рекомендуем использовать Option Explicit в верхней части модуля, так как это помогает избежать ошибок при вводе переменных.
Использование переменных VBA без явной опции
Сначала мы покажем пример кода, когда нет команды Option Explicit. Вот код:
123456789 | Пример частной подпискиWOOptionExplicit ()Dim strTextA как строкаstrTextA = "Тестирование VBA без явной опции"MsgBox strTextAКонец подписки |
В этом примере мы объявили переменную strTextA в первой строке процедуры и присвоили ей текст. После этого мы хотим вернуть окно сообщения со значением strTextA. Вот результат, когда мы запустим код:
Изображение 1. Код без Option Explicit
Как вы можете видеть на изображении 1, код успешно выполнен. Окно сообщения со значением из strTextA появился, хотя мы не объявляли переменную strTextA. Здесь нет проблем с кодом, но что, если мы неправильно написали имя переменной:
1 | MsgBox strTxtA |
Здесь мы написали strTxtA (без «e») вместо strTextA. В результате мы получаем пустое окно сообщения, потому что переменная strTxtA не была определена. Теперь мы увидим, как использовать Option Explicit для предотвращения ошибок.
Использование переменных с Option Explicit
Если вы хотите предотвратить использование переменных, которые не объявлены, вы должны ввестиВариант Явный в верхней части вашего модуля:
1 | Вариант Явный |
Вот полный код, включая опечатку:
12345678910 | Вариант ЯвныйЧастная подпрограмма ExampleWithOptionExplicit ()Dim strTextA как строкаstrTextA = "Тестирование VBA без явной опции"MsgBox strTxtAКонец подписки |
Посмотрим, что произойдет, если мы запустим код:
Изображение 2. Код с Option Explicit
В результате мы получаем ошибку «Переменная не определена», потому что мы не объявилиstrTxtA Переменная.
Добавление Option Explicit в верхней части модулей кода помогает предотвратить ошибки из-за неправильного написания переменных.
Если вы хотите узнать больше о других параметрах VBA VBA, узнайте, как сделать VBA без учета регистра: Предотвращение учета регистра в VBA