Чтение онлайн

на главную

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

Использование переменных в операторах присваивания

Можно присваивать переменным не только буквальные значения - точно так же можно присваивать и значения, определяемые другими переменными. В операторе curSalePrice = curCost * sngMargin переменной curSalePrice присваивается значение, равное произведению переменных curCost и sngMargin. В данном случае выражение состоит из переменных, а не из буквальных значений. VBA вычисляет результат на основе значений, хранящихся в этих переменных. (Кстати, в полном соответствии с рекомендованными в главе 6 соглашениями по выбору имен, curSalePrice и curCost являются переменными

типа Currency.)

Использование функций в операторах присваивания

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

ctrFavorite = InputBox(Кто сегодня фаворит?)

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

Выражен-и-я

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

* переменные (например, bytMonth или boolWinter );

* буквальные значения (например, 1234 или Это только пример);

* константы (они предназначены для хранения буквальных значений и рассматривают; ся в разделе 'Работа с постоянными значениями);

* функции VBA (например, Input Box или Sqr );

* процедуры типа Function.

Если в выражении не меньше двух таких элементов, то они должны быть связаны либо знаками операций (к последним относится, например, знак +), либо функциями и процедурами типа Function, вложенными внутрь других функций и процедур типа Function.

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

Что содержит переменная перед тем, как ей присваивается значение?

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

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

Вот какие значения хранятся в переменных перед тем, как вы им присваиваете свои значения.

Тип данных

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

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

О

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).

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

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

Поделиться:
Популярные книги

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Неудержимый. Книга XIV

Боярский Андрей
14. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIV

Идеальный мир для Лекаря

Сапфир Олег
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря

Подаренная чёрному дракону

Лунёва Мария
Любовные романы:
любовно-фантастические романы
7.07
рейтинг книги
Подаренная чёрному дракону

Я Гордый часть 2

Машуков Тимур
2. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый часть 2

Бальмануг. Невеста

Лашина Полина
5. Мир Десяти
Фантастика:
юмористическое фэнтези
5.00
рейтинг книги
Бальмануг. Невеста

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Сонный лекарь 6

Голд Джон
6. Сонный лекарь
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 6

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Ночь со зверем

Владимирова Анна
3. Оборотни-медведи
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Ночь со зверем

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

Барон устанавливает правила

Ренгач Евгений
6. Закон сильного
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Барон устанавливает правила