Операторы VBA
Программа на VBA – это последовательность операторов.
При составлении программ следует придерживаться ряда соглашений. Так, на одной строке можно разместить несколько операторов. Между операторами в одной строке ставится двоеточие.
Любую строку можно разбить на две, расположив в конце первой знаки символов «Пробел» + «Знак подчеркивания» ( _), в этом случае вторая строка будет считаться продолжением первой.
Для того, чтобы сделать программу легко читаемой используют комментарии. В языке VBA существуют два способа ввода комментариев: применение апострофа (‘), который можно поставить в любом месте строки, и зарезервированное слово Rem вместо апострофа.
1. Оператор Dimпредназначен для объявления типов переменных.
Примеры:
· Dim A As Integer – переменная A объявляется как целое, т.е. в ней будут храниться только целые величины.
· Dim D As Date – объявляется переменная D для хранения дат.
· Dim Фамилия, Наименование As String – объявлютсяпеременные. Фамилия и Наименование, предназначеные для хранения текста.
· Dim B(12) As Integer – объявляется одномерный массив (вектор), состоящий из 12 целых чисел, причем по умолчанию первый элемент массива будет B(0), а последний B(12).
· Dim B(3,3) As Single – объявляется двумерный массив 3х3 (матрица), состоящий из действительных чисел.
Если не указан тип переменной, то по умолчанию используется тип Variant. Однако указание конкретного типа переменной делает программу надежнее и убыстряет ее работу, т.к. VBA не требуется тратить время на распознавание необъявленной переменной при каждом обращении к ней.
Если размер массива M заранее не известен и определяется в ходе программы, то при описании массива число элементов не указывается, и массив определяется так:
Dim M() As Integer
После определения числа элементов массива, например, N, необходимо записать оператор
Redim M(N)
2. Оператор присваивания предназначен для присваивания переменной какого-либо значения.
Синтаксис:
Переменная (или свойство объекта) = выражение.
Примеры:
· а=5 – переменной А присвоить значение 5;
· b=«Менеджер» – переменной b присвоить значение «Менеджер»;
· Адрес=Sheets("Организации").Cells(2,2) – переменной Адрес присвоить содержимое ячейки B2, которая находится на листе Организации в текущей рабочей книге;
· Фамилия=UserForm1.TextBox1.Text – переменнойФамилия присвоить содержимое поля TextBox1 пользовательской формы UserForm1.
3. Оператор With/End withизбавляет программиста от большого количества повторений имени одного и того же объекта.
Синтаксис:
With объект
оператор1
оператор2
..............
..............
операторN
End with
Например, вместо последовательности операторов
UserForm1.TextBox1.Text = Date
UserForm1.TextBox2.Text = “ “
UserForm1.ComboBox1.Text = “ “
можно записать так
With UserForm1
.TextBox1.Text = Date
.TextBox2.Text = “ “
.ComboBox1.Text = “ “
End with
Пример 2.
REM На листе Лист1 в столбце А, начиная со второй строки, записаны ‘тарифы сотрудников. Заполним поле со списком ComboBox1 в ‘пользовательской форме UserForm1
‘Первая строка программы – на листе Лист1 в столбце А ‘подсчитывается количество заполненных ячеек, результат ‘присваивается переменной N
N=Application.CountA(Sheets(“Лист1”).Range(“A:A”) ).
D=”A2:A”&Cint(N)
Sheets(“Лист1”).Range(D).Name=”Тарифы”
With UserForm1
.TextBox1.Text = Date
.TextBox2.Text = “ “
.ComboBox1.Text = “ “
.ComboBox1.Rowsource = “Тарифы “
End with
4. Условный оператор If/Then/Else – позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие
Синтаксис:
If условие Then операторы1 [Else операторы2]
Если условие истинно, то выполняются операторы1, в противном случае выполняются операторы2.
Допускается также использование сложного условного оператора, который записывается в виде блока:
If условие1 Then
операторы1
ElseIfусловие2 Then
операторы2