VBA Option Explicit | Как сделать объявление переменной обязательным?

Явный параметр Excel VBA

Объявление переменных очень важно в VBA, Option Explicit заставляет пользователя объявлять все переменные перед их использованием, любая неопределенная переменная вызовет ошибку во время выполнения кода, мы можем явно указать параметр ключевого слова или включить его для все коды из опций, позволяя требовать объявления переменных.

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

Что такое VBA Option Explicit?

Я надеюсь, что вы встретили выделенное синим цветом слово «Option Explicit» в верхней части модуля до запуска любого макроса в этом модуле.

В начале изучения VBA я тоже не понимал, что это такое, и, честно говоря, я даже не думал об этом вообще. Не только для меня или для вас, но и для всех в начале. Но сейчас мы увидим важность этого слова.

«Option Explicit» - это наш наставник при объявлении переменной. Добавление этого слова делает объявление переменной обязательным процессом.

Вы можете скачать этот явный шаблон Excel с опцией VBA здесь - Явный шаблон Excel с опцией VBA

Для понимания примера посмотрите на приведенный ниже код.

Код:

 Sub Example1 () i = 25 MsgBox i End Sub 

Если я запустил этот код, мы получим значение переменной «I» в окне сообщения в VBA.

Теперь я добавлю слово «Option Explicit» в самое начало кода VBA.

Теперь я запущу код и посмотрю, что произойдет. Если вы тренируетесь со мной, нажмите клавишу F5, чтобы запустить код.

Мы получили ошибку компиляции и написано: «Переменная не определена» . Мы не объявили переменную «i», но сразу присвоили ей значение 25.

Поскольку мы добавили слово «Option Explicit», это заставляет нас объявить переменную в обязательном порядке.

В приведенном выше коде алфавит «i» не объявлен, поэтому мы добавили слово контроллера переменной «Option Explicit», которое не позволяет нам использовать необъявленные переменные.

В тот момент, когда вы добавляете слово «Option Explicit» в верхней части модуля, все макросы в этом конкретном модуле могут в обязательном порядке объявлять переменные.

Как сделать объявление переменной обязательным?

Если вы вручную добавили наставник переменных «Option Explicit» в свой модуль, когда вы вставляете новый модуль, вы не получите этого наставника переменных по умолчанию.

Если вы думаете, что каждый раз вам нужно вручную добавлять слово «Option Explicit» для всех новых модулей, то вы ошибаетесь.

Потому что мы можем сделать это слово обязательным во всех модулях, выполнив простую настройку. Выполните следующие шаги, чтобы изменить настройки.

Шаг 1. Перейдите в редактор Visual Basic.

Шаг 2: Перейдите в ИНСТРУМЕНТЫ и нажмите Параметры.

Шаг 3: В тот момент, когда вы нажмете «Параметры», вы увидите окно, показанное ниже.

Шаг 4: В этом окне перейдите в Редактор и отметьте опцию «Требовать объявление переменной» .

Шаг 5: Нажмите ОК, чтобы закрыть окно.

С этого момента всякий раз, когда вы добавляете новый модуль, он по умолчанию автоматически вставляет слово «Option Explicit».

Option Explicit - ваша экономия

Option Explicit помогает нам во многих отношениях, прямо с момента объявления переменной обязательной она будет помогать нам до выполнения. Посмотрите на приведенный ниже код.

Код:

 Sub Example2 () Dim CurrentValue As Integer CurentValue = 500 MsgBox CurrentValue End Sub 

В приведенном выше коде я объявил переменную CurrentValue как целое число. В следующей строке я присвоил ему значение 500. Если я запустил этот код, я должен получить 500 в результате в окне сообщения. Но посмотрите, что получится.

В нем написано «Переменная не определена» и выделена вторая строка.

Если мы внимательно посмотрим на вторую строку, то обнаружим небольшую орфографическую ошибку. Имя моей переменной «CurrentValue», но во второй строке я пропустил одно написание, то есть «r». В нем написано «CurrentValue» вместо «CurrentValue». Поскольку я сделал объявление переменной обязательным, добавив слово «Option Explicit» в excel VBA, он выделил мне сделанную мной опечатку.

Итак, когда мы исправим орфографию и запустим код, мы получим следующий результат.

Поздоровайтесь с новым наставником переменных !!!