VBA для чайников
Шрифт:
Private Sub СкрытаяПроцедура
(здесь должны размещаться операторы процедуры )
End Sub
Еще несколько примеров объявлений процедур вы уже встречали в разделе Создание процедур.
Операторы присваивания
Операторы присваивания приписывают переменным или свойствам объектов конкретные значения. Такие операторы всегда состоят из трех частей: имени переменной, или свойства, знака равенства и выражения, задающего нужное значение.
Термин выражение я определю чуть позже, но сначала приведу несколько примеров
МоеЛюбимоеЧисло = ДругоеЧисло + 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 предупреждает, что введено недопустимое имя