VBA для «чайников» - [47]
Использование локальных процедур
Объявление процедуры локальной помогает избежать многих ошибок. Поскольку в таком случае можно вызывать процедуру только в рамках содержащего ее модуля, легче контролировать условия, которые складываются во время вызова (эти условия включают значения переменных, используемых этой процедурой).
Объявить процедуру локальной несложно, но зачем беспокоиться? В конце концов, VBA же не требует вызывать процедуру только потому, что она открыта!
Главной причиной является повышение надежности. Вы можете забыть, что данная процедура предназначена для использования только внутри модуля. Если процедура локальна.
VBA не позволит вам вызвать ее из другого модуля, когда вы попытаетесь это сделать.
А в программах значительных объемов и сложности уменьшение области доступа к процедуре еще и помогает контролировать организацию программы.
Использование операторов
Процедуры состоят из операторов - наименьших жизнеспособных единиц программного кода. Как правило, операторы занимают по одной строке программного кода, и в каждой строке обычно содержится только один оператор, но, как будет показано немного позже, это не обязательно. В VBA четыре типа операторов: объявления, операторы присваивания, выполняемые операторы и параметры компилятора.
Объявления
Объявление - это оператор, сообщающий компилятору VBA о ваших намерениях по поводу использования в программе именованного объекта (переменной, константы, пользовательского типа данных или процедуры). Кроме того, объявление задает тип объекта и обеспечивает компилятору дополнительную информацию о том, как использовать данный объект.
Объявив объект, вы можете использовать его в любом месте программы.
Рассмотрим пример объявления переменной. Переменные - это именованные значения, которые могут изменяться во время выполнения программы (подробно об этом - в главе 7).
В следующем операторе объявляется переменная с именем МоеЛюбимоеЧисло и заявляется о том, что значение, которое она будет содержать, должно быть целым:
Dim МоеЛюбимоеЧисло As Integer
В главе 7 обсуждаются также константы, представляющие собой именованные значения, которые не меняются. Следующий оператор создает строковую константу (текст) с именем НеизменныйТекст, представляющую собой набор символов Вечность:
Constant НеизменныйТекст = Вечность
Объявление переменной или константы можно поместить либо в разделе объявлений модуля, либо внутри конкретной процедуры. Выбор места зависит от того, какой должна быть область видимости. Здесь же вы найдете несколько примеров объявления переменных.
Следующим оператором объявляется пользовательский тип данных с именем Самоделкин, определяя его как структуру, включающую строковую переменную с именем
Имя и переменную типа Date с именем ДеньРождения. В данном случае объявление займет несколько строк:
>Type Самоделкин
Имя As String
ДеньРождения As Date
End Type
Следующее объявление создает процедуру типа Sub с именем СкрытаяПроцедура, говоря о том, что эта процедура будет локальной в смысле области видимости. Завершающий процедуру оператор End Sub считается частью объявления. Предполагается, что операторы, составляющие тело процедуры, вы должны напечатать сами:
>Private Sub СкрытаяПроцедура ()
(здесь должны размещаться операторы процедуры )
End Sub
Еще несколько примеров объявлений процедур вы уже встречали в разделе Создание процедур.
Операторы присваивания
Операторы присваивания приписывают переменным или свойствам объектов конкретные значения. Такие операторы всегда состоят из трех частей: имени переменной, или свойства, знака равенства и выражения, задающего нужное значение.
Термин выражение я определю чуть позже, но сначала приведу несколько примеров операторов присваивания. Следующий оператор присваивает переменной МоеЛюбимоеЧисло значение суммы переменной ДругоеЧисло и числа 12:
МоеЛюбимоеЧисло = ДругоеЧисло + 12
Вот оператор, устанавливающий свойство Color (Цвет) объекта AGraphi cShape равным Blue (Синий) в предположении, что Blue является именованной константой, представляющей числовой код соответствующего цвета:
AGraphicShape.Color = Blue
А в следующем операторе, чтобы задать значение переменной КвадратныйКорень, для текущего значения переменной МоеЛюбимоеЧисло вызывается функция Sqr - встроенная функция VBA для вычисления квадратного корня:
КвадратныйКорень = Sqr(МоеЛюбимоеЧисло)
Перед тем как привести примеры, я использовал термин выражение, В VBA выражением называется любой фрагмент программного кода, задающий некоторое числовое значение, строку текста или объект. Выражение может содержать любую комбинацию чисел или символов, констант, переменных, свойств объектов, встроенных функций и процедур типа Function, связанных между собой знаками операций (например, + или *). Вот несколько примеров выражений.
Выражение | Значение |
3,14 | 3,14 |
AgraphicShape | 5 (в предположении, что объект AGraphi cShape представляет пятиугольник) |
( 12 - 3 qr ( x ) )/5 | 2 (в предположении, что х=4) |
Розы красные, фиалки фиолетовые | Розы красные, фиалки фиолетовые |
Выполняемые операторы
Выполняемые операторы делают главную работу в программе и используются для выполнения следующих задач.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.