VBA для «чайников» - [56]
Взгляните на следующий оператор присваивания:
strQuot e = Не спрашивай, что я сделал для страны - _
спроси о том, что страна сделала для меня.
В данном случае оператор присваивает текст справа от знака равенства переменной strQuot e. Как и раньше, информация во входящем в этот оператор выражении представляет собой буквальные значения - реальный текст, помещаемый в переменную. Но оператор разбит на две строки, поэтому и текстовое выражение разбито на две отдельные строки. Знак (амперсанд) дает указание VBA соединить эти строки вместе.
Здесь я просто пытаюсь показать, что выражения часто имеют несколько компонентов.
Но независимо оттого, из какого числа компонентов складывается выражение, VBA сначала вычисляет результирующее значение, а уж затем присваивает это значение переменной.
Ясно, что до момента реального выполнения оператора присваивания его утверждение не является фактом. В математике равенством 2+2=4 на самом деле утверждается, что значение слева от знака равенства равно значению справа.
В 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 | Ничто (специальное значение, указывающее на то, что переменной не присвоено никакой ссылки на объект) |
Работа с постоянными значениями
Если в программе есть значения, которые не должны меняться, то для представления таких значений не обязательно создавать переменные. Конечно, в любой процедуре для представления этих значений можно использовать и буквальные значения, но объявление представляющих эти значения констант, как правило, предпочтительнее.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.