Задание №4 в компьютерном классе: внести изменения в программный код, в соответствии с рисунком выше
Область в начале модуля перед любыми объявлениями процедур называют областью объявлений модуля, потому что именно туда следует помещать объявления переменных модульного уровня и другие директивы VBA, влияющие на весь модуль.
В первой строке, приведенного выше листинга, объявлена переменная А модульного типа. Однако в процедуре example_02 имеется свое объявление переменной А. VBA выбирает наиболее локальную переменную А, объявленную как переменная процедурного уровня.
Переменные процедурного уровня часто называют локальными переменными, потому что их объявления являются локальными для выполняемой в данный момент процедуры.
Если вы хотите всегда использовать только явное объявление переменных, то для таких целей VBA предоставляет команду Option Explicit. При использовании Option Explicit VBA требует объявления всех переменных перед их использованием.
Задание №5 в компьютерном классе: внести изменения в программный код, в соответствии с рисунком выше.
В настройках редактора VBA можно указать, чтобы команда Option Explicit автоматически включалась в новый модуль.
Константы VBA
Константа - это значение в программе VBA, которое не изменяется.
Константы можно использовать как аргументы для процедур, в математических операциях, операциях сравнения и пр.
Константы бывают литеральными и именованными.
Литеральная константа - это константа (число, строковое выражение, дата), расположенная непосредственно в коде.
Например: X = Y + 2
Здесь число 2 является литеральной константой.
Именованная константа, как правило, объявляется в начале модуля или процедуры (аналогично переменной) и предназначена для удобства читания и понимания программного кода. Например, более целесообразно использовать в коде программы именованную константу Pi (которой присвоено значение 3,14), чем литеральную константу 3,14. Согласитесь, что выражение
S = Pi * R* R
Более "понятно", чем
S = 3.14 * R * R
Другим веским фактором в пользу именованных констант служит то обстоятельство, что изменив значение константы один раз, эти изменения мгновенно произойдут во всем программном коде. Литеральную константу надо искать и изменять в теле кода "вручную", на что может уйти довольно значительное время.
Однако не стоит использовать именованные константы сплошь и рядом, т.к. код может стать абсолютно нечитабельным, а вы сами запутаетесь, что и где находится.
Литеральные константы
Существует несколько правил, которые необходимо соблюдать при написании литеральных констант.
Константы String
- Строковые константы должны быть заключены в двойные кавычки (");
- Пустая строковая константа (так называемая "нулевая строка") обозначается двумя двойными кавычками, между которыми ничего нет ("");
- Строковая константа обязательно должна вся находиться на одной строке.
Численные константы
- Численные константы могут содержать любой из численных типов VBA;
- Численные константы должны состоять только из числовых символов от 0 до 9;
- Численная константа может начинаться со знака (-) и может содержать десятичную точку;
- Можно использовать экспоненциальное представление для численных констант;
- Никакие другие символы или знаки не допускаются в численных константах.
Константы Date
- Константы Date необходимо помещать между знаками фунта (#), при этом формат задания даты может быть различным:
#3-5-99#
#February 13, 2008 10:15am#
#Jun-20-2005#
# 9 April 1998# - VBA переформатирует дату к следующему виду: #4/9/1998#
- Если пропустить знак фунта (#) при записи литеральной константы даты, VBA не сможет правильно интерпретировать константу даты как дату;
- Нельзя заключать литеральные константы даты в двойные кавычки, т.к. в этом случае VBA распознает такую константу как строковую.
Константы Boolean
Существуют только два вида констант типа Boolean: True, False. При этом их нельзя брать в кавычки или сокращать.
Именованные константы
При создании и объявлении именованных констант надо придерживаться тех же принципов, что и при работе с переменными.
Для объявления именованной константы предназначено ключевое слово Const
Синтаксис
Const name_1 = value_1 [opetator name_2..] [, name_3 =..]
Name_N - любой допустимый идентификатор имени константы;
Value_N - любое значение данных;
Opetator - арифметическая или операция сравнения между двумя именами ранее описанных констант.
Область действия именных констант аналогична переменным, т.е. константы бывают процедурного и модульного уровня.
Поскольку одной из главных целей использования именованной константы является предотвращение повторения или дублирования литеральных констант, как правило, бывает необходимо, чтобы именованные константы были доступны всем процедурам в модуле. Поэтому целесообразно помещать объявления констант на модульном уровне, чтобы у них была наибольшая область действия.