Операторы VBA

Программа на VBA – это последовательность операторов.

При составлении программ следует придерживаться ряда соглашений. Так, на одной строке можно разместить несколько операторов. Между операторами в одной строке ставится двоеточие.

Любую строку можно разбить на две, расположив в конце первой знаки символов «Пробел» + «Знак подчеркивания» ( _), в этом случае вторая строка будет считаться продолжением первой.

Для того, чтобы сделать программу легко читаемой используют комментарии. В языке VBA существуют два способа ввода комментариев: применение апострофа (‘), который можно поставить в любом месте строки, и зарезервированное слово Rem вместо апострофа.

 

1. Оператор Dimпредназначен для объявления типов переменных.

Примеры:

1. Dim A As Integer – переменная A объявляется как целое, т.е. в ней будут храниться только целые величины.

2. Dim D As Date – объявляется переменная D для хранения дат.

3. Dim Фамилия, Наименование As String – объявлютсяпеременные. Фамилия и Наименование, предназначеные для хранения текста.

4. Dim B(12) As Integer – объявляется одномерный массив (вектор), состоящий из 12 целых чисел, причем по умолчанию первый элемент массива будет B(0), а последний B(12).

5. Dim B(3,3) As Single – объявляется двумерный массив 3х3 (матрица), состоящий из действительных чисел.

Если не указан тип переменной, то по умолчанию используется тип Variant. Однако указание конкретного типа переменной делает программу надежнее и убыстряет ее работу, т.к. VBA не требуется тратить время на распознавание необъявленной переменной при каждом обращении к ней.

Если размер массива M заранее не известен и определяется в ходе программы, то при описании массива число элементов не указывается, и массив определяется так:

Dim M() As Integer

После определения числа элементов массива, например, N, необходимо записать оператор

Redim M(N)

2. Оператор присваивания предназначен для присваивания переменной какого-либо значения.

Синтаксис:

Переменная (или свойство объекта) = выражение.

Примеры:

1. а=5 – переменной А присвоить значение 5;

2. b=«Менеджер» – переменной b присвоить значение «Менеджер»;

· Адрес=Sheets("Организации").Cells(2,2) – переменной Адрес присвоить содержимое ячейки B2, которая находится на листе Организации в текущей рабочей книге;

· Фамилия=UserForm1.TextBox1.Text – переменнойФамилия присвоить содержимое поля TextBox1 пользовательской формы UserForm1.

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

 

1. Условный оператор If/Then/Else – позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие

Синтаксис:

If условие Then операторы1 [Else операторы2]

Если условие истинно, то выполняются операторы1, в противном случае выполняются операторы2.

Допускается также использование сложного условного оператора, который записывается в виде блока:

If условие1 Then

операторы1

ElseIfусловие2 Then

операторы2

Else

операторы3

End If

 

Примеры:

With UserForm1

Фамилия=.TextBox1.Text

If Фамилия =”“ Then MsgBox”Вы не ввели фамилию”

End with

REM При установленном флажке номер 1 клиенту ‘предоставляется скидка 5%

‘ Сумма – количество денег, выплачиваемых клиентом

‘ Стоимость товара хранится в переменной Стоимость

If UserForm1.CheckBox1.Value = True Then

Сумма=Стоимость-Стоимость*0.05

Else Cумма=Стоимость

End If

1) REM Предположим, что Тариф – это установленный тариф, а Время ‘–отработанное время. Время и тариф вводятся в поля ввода ‘соответственно вTextBox1 и TextBox2. Зарплата рассчитывается по ‘формуле Тариф*Время. Напишем программу для вывода в форму ‘рассчитанной зарплаты. Label4 – надпись, подготовленная для ‘вывода значения зарплаты

If IsNumeric(TextBox1.Text)=True And _

IsNumeric(TextBox2.Text)=True Then

Тариф=TextBox1.Text

Время=TextBox2.Text

Label4.Caption=Тариф*Время

End If

В первом примере работа ведется с пользовательской формой номер один. Переменной Фамилия присваивается содержимое поля ввода номер один. Затем осуществляется проверка, было ли что-либо введено в поле ввода (не пуста ли переменная Фамилия). Если переменная Фамилия пуста, то на экран выводится окно сообщения.

Во втором примере – первые строки, начинающиеся со слова REM и апострофов, – это комментарии, объясняющие назначения переменных. С помощью условного оператора определяется сумма, выплачиваемая клиентом.

В третьем примере осуществляется проверка того, введены ли в поля ввода числа. Если в два поля введены числа, то переменным присваиваются значения полей ввода и надписи присваивается значение результата умножения тарифа на время.

1) Оператор безусловного перехода GoToпредназначен для задания перехода на указанную строку внутри программы.

Синтаксис:

GoTo Строка

Обязательный аргумент Строка может быть любой меткой строки или номером строки.

Пример:

If IsNumeric(TextBox1.Text)=False Then GoTo Ошибка

......

Ошибка: MsgBox “Ошибка при вводе чисел!”

В приведенном примере выполняется проверка того, введено ли число в поле ввода номер один. Если введено не число, то осуществляется переход на строку с меткой Ошибка и на экран выводится сообщение.

2) Оператор цикла For/To/Nextпредназначен для программирования повторяющихся фрагментов, т.е. для описания циклических алгоритмов.

Синтаксис:

For переменная=M1 To M2 [Step M3]

операторы

Next

M1, M2, M3 – выражения. Оператор цикла повторяет выполнение группы операторов, пока переменная (счетчик) изменяется от начального значения М1 до конечного М2 с указанным шагом М3. Если шаг не указан, то он полагается равным 1.

Пример:

For I=2 To 10

Фамилия = Sheets(“Сотрудники”).Cells(I,1)

UserForm1.ComboBox1.AddItem Фамилия

Next

В приведенном примере предполагается, что на листе «Cотрудники» в первом столбце записаны фамилии сотрудников, которые нужно внести в список поля со списком номер один пользовательской формы номер один. Алгоритм работы программы:

1) Переменной I присваивается значение 2.

2) Переменной Фамилия присваивается значение ячейки А(I,1), расположенной на листе «Сотрудники». (При первом выполнении цикла это ячейка А(2,1))

3) В список поля со списком ComboBox1 добавляется элемент из переменной Фамилия.

4) К значению переменной I добавляется 1 (если шаг не указан, то он полагается равным 1). Выполняется проверка, не превысила ли величина I 10 (конечного значения переменной I, в примере М3=10)? Если величина I еще меньше или равна 10, то выполняются пункты 2-4, в противном случае работа цикла заканчивается.

Таким образом, приведенная программа позволяет заполнить данными список поля со списком ComboBox1.

 

Основные алгоритмы, используемые при решении
экономических задач

Основные алгоритмы рассмотрим на следующем примере. В выполнении работы по договору участвовали сотрудники разных отделов. В таблице, на листе «Лист1» представлены данные о количестве отработанных часов каждым из сотрудников (рис.8).

 

 
 


Рис.8.Данные о количестве отработанных часов

сотрудниками фирмы

 








Дата добавления: 2014-12-02; просмотров: 3749;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.018 сек.