- •Тема 18: Язык и система программирования Visual Basic for Application (vba)
- •1. Общая характеристика языка и системы программирования vba
- •2. Типы данных в языке vba
- •Тип данных Строка (String)
- •Тип данных Variant
- •Тип данных Массив
- •Описание переменных и идентификаторы типов данных
- •3. Арифметические и логические выражения
- •1. Оператор присваивания.
- •2. Условный оператор.
- •3. Оператор цикла с заданным числом повторений.
- •4. Оператор цикла с незаданным числом повторений.
- •5. Разбиение строки программы, несколько операторов в одной строке, задание комментариев в тексте программы
- •4. Основные операторы языка vba
- •6. Типы процедур
4. Основные операторы языка vba
1. Оператор присваивания.
Синтаксис: [Let] <идентификатор> = <выражение>
Данный оператор вычисляет значение выражения, записанного в правой части (после =), и присваивает полученное значение переменной, чей идентификатор записан в левой части (перед равно).
В VBA в левой части может быть записан не только идентификатор переменной, но и идентификатор свойства какого-либо объекта.
Примеры: 1) X = 1, 2) A = ”Академия”, 3) Y = - 1.5, 4) Z = 3 + X ^ 5 – Sin (Х)
2. Условный оператор.
Синтаксис: If <условие> Then <оператор 1> [ Else <оператор 2> ]
Условный оператор находит значение условия – логического выражения. Если оно «истина», то выполняется оператор 1. Если оно «ложь», то выполняется оператор 2.
Примеры:
1) If X>0 Then Y = X^ 2 + 3 Else Y = X ^ 3 – 1 (ветвление)
2) If А>В Then А = В (обход)
Если требуется задать не одно, а сразу несколько действий после Then или Else, то можно воспользоваться блочной формой синтаксиса:
If <условие> Then
<оператор 1>
…
[ Else
<оператор 2>
… ]
End If
Пример:
If X>0 Then
Y = X + Sin ( 3 * X + 8 )
Z = ( Y + 1) / Y ^ 2
Else
Y = 0
Z = 1
End If
3. Оператор цикла с заданным числом повторений.
Синтаксис:
For <идентификатор> = <нач. знач.> To <кон. знач.> [ Step <шаг> ]
<оператор 1>
…
Next <идентификатор>
В заголовке оператора For указывается идентификатор управляющей переменной цикла (как правило, целочисленной).
На первом шаге управляющей переменной присваивается начальное значение и выполняется тело цикла (оператор1, …). Затем значение управляющей переменной изменяется на значение шага и опять выполняется тело цикла и т.д.. Последний раз тело цикла выполняется, когда управляющая переменная равна конечному значению.
Если шаг равен 1, его можно не указывать (действует принцип по умолчанию).
Пример:
For I = 1 To 100
Y(I) = X(I) ^ 2 + X(I) ^ 3
S1 = S1 + X(I)
S2 = S2 + Y(I)
Next I
4. Оператор цикла с незаданным числом повторений.
Синтаксис:
While <условие>
<оператор 1>
…
Wend
Вначале проверяется условие цикла, и если оно истинно, то выполняется тело цикла (оператр1, …) и т.д. Цикл завершается, когда при проверке условия оно окажется ложным.
Пример: While X < 15376.78
X = X + X ^ 2
S = S + X
Wend
5. Разбиение строки программы, несколько операторов в одной строке, задание комментариев в тексте программы
Если строчная запись некоторого оператора в тексте программы слишком длинная, то ее можно разбить и записать на нескольких строках. Для этого в конце строки, где должен быть сделан перенос, следует последовательно записать символы «пробел»+«подчеркивание». При этом нужно помнить, о следующих правилах:
1. Нельзя разбивать переносом строковые константы.
2. Допустимо не более семи продолжений одной и той же строки.
3. Сама строка программы не может состоять более чем из 1024 символов.
Пример: If X>5 Or Y<0 Then Z = (X + Y) ^ 2 _
Else Z = (X – Y) ^ 2
Использование знака «двоеточие» позволяет наоборот размещать в одной строке программы сразу несколько операторов.
Пример: X = X + 1 : Y = X + 2 : Z = X + Y
Работая с программой, удобно использовать комментарии, т.е. фрагменты программы, не являющиеся программными кодами и игнорируемые компилятором. Комментарии выполняют две важные функции: 1) делают программу легко читаемой, поясняя ее смысл, 2) позволяют временно отключать отдельные фрагменты программы при ее отладке.
В языке VBA можно использовать два способа задания комментариев по тексту программы: 1) с помощью апострофа ’ , который может быть поставлен в любом месте строки и тогда все последующие символы этой строки будут восприниматься как комментарий; 2) вместо апострофа может использоваться слово Rem (данный способ унаследован из классического Бейсика).
Примеры:
1) Dim I As Integer ’ I – переменная целого типа
2) Dim B As String
Rem B – строка символов
