Найти в Дзене
VBA Excel с нуля

VBA Excel № 38. Статические переменные в VBA.

При написании программ на VBA иногда возникает необходимость сохранять значение переменной между вызовами подпрограммы или функции. Для этой цели можно использовать статические переменные.

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

Для объявления статической переменной в VBA используется ключевое слово "Static" перед объявлением переменной. Вот пример:

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

В этом примере мы объявляем статическую переменную "счёт" типа "Integer" в подпрограмме "Counter". При каждом вызове подпрограммы "Counter" значение переменной "счёт" увеличивается на 1 и выводится в сообщении.

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

Ещё пример использования статической переменной для отслеживания вызовов подпрограммы:

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

В этом примере мы объявляем статическую переменную "КоличествоВызовов" типа "Integer" в подпрограмме "ОтслеживаниеВызовов". При каждом вызове подпрограммы значение переменной "КоличествоВызовов" увеличивается на 1 и выводится в сообщении.

Таким образом, мы можем отслеживать количество вызовов подпрограммы "КоличествоВызовов" с помощью статической переменной "ОтслеживаниеВызовов".

И если вы вызвали программу 3 раза, то на третий раз получите такое сообщение:

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

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

В следующей статье рассмотрим вопрос об использовании и объявлении Констант в VBA

Наука
7 млн интересуются