ДекларуванняОпція явна у верхній частині кодового модуля повідомляє VBA вимагати від вас оголосити всі змінні, які ви використовуєте в коді. Якщо ця команда опущена, ви можете використовувати змінні, які ви не оголосили. Ми рекомендуємо використовувати Option Explicit у верхній частині вашого модуля, оскільки це допомагає уникнути помилкового введення змінних.
Використання змінних VBA без опції Explicit
Спочатку ми покажемо приклад коду, коли немає команди Option Explicit. Ось код:
123456789 | Приклад приватного підрозділу WOOptionExplicit ()Затемнити strTextA як рядокstrTextA = "Тестування VBA без явного варіанту"MsgBox strTextAEnd Sub |
У прикладі ми оголосили змінну strTextA у першому рядку процедури та призначили їй текст. Після цього ми хочемо повернути вікно повідомлення зі значенням strTextA. Ось результат, коли ми запускаємо код:
Зображення 1. Код без опції Explicit
Як ви можете бачити на зображенні 1, код успішно виконано. Вікно повідомлення зі значенням від strTextA з'явилося, навіть якщо ми не оголосили змінну strTextA. Тут немає проблем з кодом, але що, якби ми помилково написали назву змінної:
1 | MsgBox strTxtA |
Тут ми написали strTxtA (без "e") замість strTextA. В результаті ми отримуємо порожнє вікно повідомлення, оскільки змінна strTxtA не була визначена. Тепер ми побачимо, як використовувати Option Explicit для запобігання помилкам.
Використання змінних з опцією Explicit
Якщо ви хочете запобігти використанню змінних, які не оголошені, вам потрібно ввестиОпція явна у верхній частині модуля:
1 | Опція явна |
Ось повний код, включаючи помилку:
12345678910 | Опція явнаПриватний підприкладWithOptionExplicit ()Затемнити strTextA як рядокstrTextA = "Тестування VBA без явного варіанту"MsgBox strTxtAEnd Sub |
Давайте подивимося, що станеться, якщо ми запустимо код:
Зображення 2. Код з опцією Explicit
В результаті ми отримуємо помилку "Змінна не визначена", оскільки ми не оголошувалиstrTxtA змінна.
Додавання опції Explicit у верхній частині модулів коду допомагає запобігти помилкам з помилково написаними змінами.
Якщо ви хочете дізнатися більше про інші варіанти VBA, дізнайтеся про те, як зробити VBA чутливим до регістру: Запобігайте VBA чутливому до регістру