52953.fb2 VBA для чайников - читать онлайн бесплатно полную версию книги . Страница 37

VBA для чайников - читать онлайн бесплатно полную версию книги . Страница 37

Тип данных

Начальное значение

Все числовые типы данных

О

string (переменной длины)

Строка нулевой длины ( )

string (фиксированной длины)

Строка указанной длины, состоящая из символов, ASCIIкод которых равен 0 (эти символы невидимы на экране)

Variant

Пусто (специальное значение, указывающее на то, что переменная этого типа не хранит никакого значения)

Object

Ничто (специальное значение, указывающее на то, что переменной не присвоено никакой ссылки на объект)

Работа с постоянными значениями

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

Объявление констант

Для объявления констант используется ключевое слово Const:

Const cstrPetsName As String = "Пушок"

Const cDateTarget Date As Date = #5/26/2000#

Const cboolUp As Boolean = True

Все вполне аналогично объявлению переменных, за исключением того, что при объявлении константы необходимо указать ее значение. При объявлении констант можно указывать те же типы данных, что и для переменных, за исключением типа Object, пользовательского типа данных и пока что типа Decimal (см. табл. 7.1).

Обратите внимание, что имена объявленных мною констант начинаются со строчной буквы "с" (означающей сокращение от constant - константа). Таким образом, по имени сразу видно, что это константа, а не переменная. Если вас этот префикс не устраивает, выберите для своих констант другой, более подходящий вам.

Вы можете последовать примеру VBA и Visual Basic и выбрать префикс, соответствующий вашему имени, или префикс, соответствующий имени вашего VBA-проекта. VBA и Visual Basic идентифицируют константы с помощью префикса vb - например vbBl ue (константа, представляющая числовой код для синего цвета, а именно 16711680) или vbKeyTab (константа, представляющая числовой код клавиши <Tab>, а именно 9). VBA приложения часто идентифицируют свои константы с помощью префикса, специфического для этого приложения, например xlBarStacked (константа, представляющая числовой код для линейчатой диаграммы в Excel, а именно 58).

Кстати, константы, определенные VBA или VBA-приложением, тоже можно использовать в своих программах. Информацию об этих зарезервированных константах можно получить из справочной системы или в окне обозревателя объектов (см. главу 5).

Плоды использования констант

Объявив константу, вы получаете возможность использовать ее везде, где в программе потребуется представленное именем этой константы буквальное значение. Скажем, вы создаете программу, которая должна определять зарплату работника в зависимости от размера его обуви.

В таком случае основная часть программного кода может выглядеть следующим образом:

If bytPaзмepO6yви > 45 Then

curЗарплатаДжо = 75000

End If

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

Вот тот же фрагмент программного кода, заново переписанный для работы с подходящей константой:

Constc curСамаяБольшаяЗарплата As Currency = 75000

If bytPaзмepO6yви > 45 Then

curЗарплатаДжо = curСамаяБольшаяЗарплата

End If

При таком подходе вы легко найдете объявление константы в самом начале модуля или процедуры, чтобы изменить значение на новое. В результате это новое значение заменит старое во всех частях программы, где используется константа. Кроме того, программный код будет легче понять: вместо того, чтобы спрашивать себя "Что это за число 75000?", вы сможете с первого взгляда уверенно сказать, что Джо будет получать самую большую зарплату, если он носит обувь 46 размера.

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

Использование констант для атрибутов

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

Const cbytСладкий = 1, cbytСоленый = 2

Const cbytКислый = 3, cbytГорький = 4

Do While intВкус = cbytКислый

ДобавитьСладкого

intВкус = ПробаВкуса()

Loop

Знаки операций

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

В следующем выражении операция + (операция сложения) увеличивает на 3 значение переменной intA:

intA + 3

Значением выражения и будет результат такого сложения. (Не забывайте, что выражение не может выполняться само по себе - оно должно быть частью VB А-оператора, например intB = intA + 3. По поводу выражений см. выше раздел ''Выражен-и-я"'.)

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

При использовании со строками текста знак + представляет конкатенацию, т.е. соединение двух строк в одну, а не сложение. Но для строк лучше использовать "настоящий" знак конкатенации -символ &. VBA интерпретирует выражение

"Меня зовут " & "Боря"

как "Меня зовут Боря".

Кстати, знак операции + можно использовать для того, чтобы прибавлять к числам текст, если текст состоит только из цифр. Например, в результате выполнения оператора