- •Тема 18: Язык и система программирования Visual Basic for Application (vba)
- •1. Общая характеристика языка и системы программирования vba
- •2. Типы данных в языке vba
- •Тип данных Строка (String)
- •Тип данных Variant
- •Тип данных Массив
- •Описание переменных и идентификаторы типов данных
- •3. Арифметические и логические выражения
- •4. Основные операторы языка vba
- •1. Оператор присваивания.
- •2. Условный оператор.
- •3. Оператор цикла с заданным числом повторений.
- •4. Оператор цикла с незаданным числом повторений.
- •5. Разбиение строки программы, несколько операторов в одной строке, задание комментариев в тексте программы
- •6. Типы процедур
Тип данных Variant
Данный тип является особенностью VBA (отсутствует в классическом Бейсике). Переменная типа Variant может содержать данные любого типа. Если для переменной не объявлен тип данных, то по умолчанию используется тип данных Variant.
Переменная такого типа может в одной и той же программе принимать значения разного типа и это не будет являться ошибкой.
Тип данных Массив
В VBA могут использоваться массивы двух типов: статические и динамические. Границы статического массива задаются в программе заранее с помощью оператора Dim.
Синтаксис:
Dim <идентификатор>(<номер последнего элемента>) As <тип эл-тов>
Пример: Dim X(100) As Integer - описание одномерного массива, состоящего из 100 целых чисел.
В VBA, как и в классическом Бейсике, индексирование массива по умолчанию начинается с нуля, т.е. индекс 0 обозначает первый элемент массива, индекс 1 – второй и т.д. Чтобы задать нумерацию элементов массива с 1, необходимо использовать оператор:
Option Base 1
С помощью оператора Dim можно описывать также многомерные массивы (имеющие более одного индекса).
Пример: Dim Y(10,12) As Double - описание двумерного массива, состоящего из вещественных чисел двойной точности, расположенных в 10 строках и 12 столбцах.
Динамический массив используется в том случае, когда размер массива заранее неизвестен. Для его описания также используется оператор Dim, в котором не задаются границы массива, а тип элементов определяется как Variant.
Пример: Dim A() As Variant
Далее в программе, когда станет известен размер массива, может быть задан его фактический размер с помощью оператора ReDim.
Пример: ReDim A(20)
Описание переменных и идентификаторы типов данных
Любая переменная, используемая в программе, может быть явно описана с помощью оператора Dim.
Синтаксис: Dim <идентификатор> As <тип данных>
Пример: Dim B As Integer - описание переменной В как переменной целого типа
Однако делать явное описание в VBA необязательно, т.к. можно неявно задать тип переменной, приписав в конце ее идентификатора определенный символ (эту особенность VBA унаследовал от классического Бейсика).
Тип данных |
Знак |
Пример |
Integer |
% |
X%=10 |
Long |
& |
X&=2 454 638 |
Single |
! |
X!=-3.4028 |
Double |
# |
X#=10^(-12) |
Currency |
@ |
X@=685 477.5807 |
String |
$ |
X$=”Фамилия” |
3. Арифметические и логические выражения
В VBA арифметические выражения записываются только в одну строчку и пропуск знаков операций недопустим. Обозначение операций: + - сложение, – - вычитание, * - умножение, / - деление, ^ - возведение в степень.
Пример: Z = (X + 3.25 * X ^ 2) / (1 – X ^ 3) ^ (1/2)
Порядок выполнения операций определяется согласно их приоритетам. Самый высокий приоритет у возведения в степень. Далее выполняются умножение и деление. В последнюю очередь – сложение и вычитание. Нарушить порядок выполнения операций по приоритетам можно с помощью скобок.
Для записи логических выражений в VBA могут использоваться операции сравнения: < , >, =, <=, >=, <> (не равно), а также логические операции: And – конъюнкция, Or - дизъюнкция, Not – инверсия.
Пример: X>0 And X<=5 – данное логическое выражение будет истинным, если 0<X≤5.
