Excel. Трюки и эффекты. Алексей Гладкий
при объявлении Dim а, Ь, с As Integer переменные а и b будут иметь тип Variant, а переменная с – тип Integer.
Инициализация переменных
После того как переменная объявлена, VBA производит ее инициализацию указанным ниже образом.
• Переменным численных типов автоматически присваивается нулевое значение.
• Строки переменной длины после объявления являются пустыми (с нулевой длиной). Строки фиксированной длины заполняются нулевыми символами.
• Данные типа Date инициализируются значением 00:00:00 30.12.1899 (это равняется нулю при представлении даты в численном формате, о котором было рассказано выше).
• Все переменные типа Object и подобные (то есть ссылки на объекты определенного типа) принимают значение Nothing, если при их объявлении не создан новый объект (не использовалось New).
Явное и неявное объявление переменных
Рассмотренное выше объявление переменных называется явным.
VBA также поддерживает неявное объявление переменных. Под неявным объявлением подразумевается возможность использования переменной без ее объявления посредством инструкции Dim, Static, Private или Public. При первом обращении к такой переменной для нее автоматически выделяется память и происходит ее инициализация. Следует отметить, что все неявно объявленные переменные имеют тип Variant.
Использование неявного объявления переменных может как упростить написание программ, так и значительно усложнить процесс их отладки.
К примеру, можно очень долго разбираться, почему же после вычисления такого выражения, как dblSalaryAccount = dblSalaryAcount * 10. 5, значение переменной dblSararyAccount стало равным нулю, если до этого оно было равно 5.37 5. Все дело в небольшой ошибке в названии идентификатора переменной, в результате которой создается новая переменная dblSalaryAcount, которая инициализируется нулевым значением. В случае использования явного объявления переменных подобных ошибок в программе быть не может, потому что каждый раз при обнаружении необъявленного идентификатора VBA выдает ошибку.
Для включения требования обязательного объявления переменных используется директива Option Explicit. Чтобы данная директива добавлялась в каждый новый модуль автоматически, нужно с помощью меню Tools → Options (Сервис → Параметры) редактора VBA открыть диалоговое окно Options (Параметры) и на вкладке Editor (Редактор) установить флажок Require Variable Declaration (Явное описание переменных).
Константы
Как и в любом другом языке программирования, в VBA можно сопоставлять с идентификаторами константные значения. Объявление констант в языке VBA во многом сходно с объявлением переменных. Синтаксис инструкции объявления константы следующий:
[Public | Private] Const Имя_константы [As Имя_типа] = Значение
Два ключевых слова в первых скобках задают область видимости константы:
• Public – используется для объявления глобальных констант;
• Private – используется для объявления констант, доступных только в том модуле, где они объявлены.
По умолчанию, то есть когда не употреблены указанные ключевые слова, константа является Private.
Имя_константы – задает идентификатор константы.
Значение – константное значение (например, «Строка1», 1.245 ит. д.) либо выражение,