Стив Каммингс - 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)
Розы красные, фиалки фиолетовые
Розы красные, фиалки фиолетовые
Выполняемые операторы
Выполняемые операторы делают главную работу в программе и используются для выполнения следующих задач.
* Вызов процедуры
* Активизация метода некоторого объекта.
* Управление порядком, в котором должны выполняться другие операторы, с помощью организации циклов или выбора участка программного кода (из нескольких вариантов) для последующего выполнения.
* Выполнение одного из встроенных операторов VBA или функции.
Посмотрите внимательно на следующие примеры. Вот оператор, вызывающий для выполнения метод Rotate объекта AGraphicShape:
AGraphicShape.Rotate(90)
Следующий небольшой фрагмент программного кода содержит два выполняемых оператора. Оператор If. . .Then выясняет, будет ли значение переменной ПорогСлышимости больше, чем 3, и если оно больше, то программе предписано выполнить следующий выполняемый оператор, а именно тот, в котором вызывается процедура ГенераторГромкогоЗвука:
If ПорогСлышимости 3 Then
ГенераторГромкогоЗвука
End If
Параметры компилятора
Последний класс операторов представляет собой инструкции для управления поведением компилятора VBA. К операторам, задающим параметры компилятора, относятся следующие.
Оператор
Выполняемое действие
Option Base число
Установка правила нумерации массивов переменных – начинать нумерацию по умолчанию с 0 или 1 (подробности в главе 13)
Option Compare метод
Выбор метода, используемого VBA для сравнения строковых переменных (текста). Вместо слова метод можно указать Binary для сравнения на основе числового кода символов, Text для сравнения, при котором не учитывается регистр символов, или Database (только в Access) -для сравнения в порядке, отвечающем порядку сортировки соответствующей базы данных
Option Private Module
В результате помещения такого оператора в раздел Declarations модуля другие проекты не смогут получить доступ к процедурам, переменным и константам этого модуля, даже если эти объекты объявлены как открытые (подробно об области видимости см. выше в разделе Обзор области видимости)
Option Explicit
Это единственный из операторов, задающих параметры компилятора, о котором следует знать и который стоит использовать. В результате помещения этого оператора в модуль VBA запрещает использовать переменные без их предварительного явного объявления (подробности в главе 7)
Выбор имен
В определенных рамках вы имеете возможность совершенно произвольно выбирать имена для переменных, процедур и всего другого, что вы создаете. Следующие правила применимы ко всем именованным элементам в VBA-программе. включая переменные, константы, типы данных, процедуры, модули, формы и проекты.
* Имена должны начинаться с буквы, но не с цифры. После первой буквы уже могут идти и цифры, и символ подчеркивания, как, например, в имени Скоытая_ПеремекнаяЗ
* Кроме символа подчеркивания, все остальные знаки пунктуации для использования в именах в VBA запрещены:
! • $ # 7 , . ( точка) { } ( ) [ ] = - ́ % / ~ : ;
* Не допускаются пробелы в именах.
* Длина имени не должна превышать 255 символов (40 символов - для форм и элементов управления).
* Имя должно, не совпадать ни с каким ключевым словом, функцией или оператором VBA.
* В рамках одной и той же области видимости одно и то же имя нельзя использовать для двух разных объектов. Например, все процедуры в модуле должны иметь разные имена. Не допускается, чтобы переменная процедуры и переменная уровня модуля (определенная в разделе Declarations модуля) имели одинаковые имена. Однако можно использовать одно и то же имя для разных переменных, если эти переменные локальны и размещаются в разных процедурах.
Если вы попытаетесь ввести имя, нарушающее эти правила, редактор Visual Basic сообщит об этом, как только вы уберете текстовый курсор из соответствующей строки программного кода. Символы в строке станут красными, и на экране возникнет сообщение с так называемым объяснением ошибки (рис. 6.1). Исключение: предупреждение о дублировании имен процедур не появится до тех пор. пока программа не начнет выполняться.
Рис. 6.1. Редактор Visual Basic предупреждает, что введено недопустимое имя
Вот несколько примеров допустимых и недопустимых имен.
В VBA прописные и строчные буквы не различаются, но введенные вами прописные буквы любезно сохраняются. Предположим, что вы объявили переменную, имя которой состоит только из прописных букв, например:
Dim LOUCVARIABLE As String
Допустимое
Недопустимое
а
ИмяБолее255СимволовНеПоместившеесяЗдесь...
Go4It
4ScoreArd7