Операторы 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