Основы офисного программирования и язык VBA


Объявление переменных и констант простых типов - часть 2


Область видимости глобальных переменных может распространяться:

  • на все процедуры одного модуля, в котором они объявлены; такие глобальные переменные, называемые закрытыми ( Private), должны быть объявлены на уровне модуля либо оператором Private либо оператором Dim;
  • на весь программный проект - все процедуры всех модулей данного проекта; такие глобальные переменные, называемые открытыми ( Public), должны быть объявлены оператором Public.

Локальные переменные уровня процедуры могут быть объявлены оператором Static, что делает их статическими. У таких переменных увеличивается время жизни. Обычные локальные переменные рождаются при входе в процедуру, видимы только в ней и "умирают", выходя из процедуры. Это значит, что память под переменные отводится при входе в процедуру, а при выходе она освобождается. Область видимости статических переменных по-прежнему - процедура, но время жизни иное, так как у них не отбирается память при выходе, - она просто становится временно недоступной. Поэтому при повторном входе в процедуру статические переменные восстанавливают те значения, что у них были при последнем выходе. Статические переменные - это хранители информации между многократными вызовами одной и той же процедуры. Чтобы статические переменные имели смысл, необходима первоначальная инициализация переменных, - они должны иметь хоть какие-то значения уже при первом вхождении в процедуру. Вот как VBA инициализирует переменные в момент их объявления:

  • 0 - для численных значений;
  • пустая строка ("") - для строк переменной длины;
  • строка, содержащая нули, - для строк фиксированной длины;
  • Empty (значение, указывающее на отсутствие инициализации) - для типа Variant;
  • для массивов и записей (типа, определенного программистом), каждый элемент инициализируется в соответствии с указанными правилами.




Начало  Назад  Вперед