- •Использование макросов в табличных документах Теоретические сведения определение макроса
- •Основы работы в visual basic Основные понятия языка vba
- •Правила написания программ
- •Встроенные типы данных
- •Переменные
- •Массивы
- •Пользовательские типы данных
- •Объявление констант
- •Оператор комментариев
- •Процедуры
- •Операторы языка vba Оператор присваивания
- •Встроенные функции vba
- •Функции пользователя
- •Управляющие структуры
- •Условный оператор If.
- •Оператор выборки Select Case.
- •Оператор счетного цикла For-Next
- •Цикл Do-Loop
- •Цикл While-Wend
- •Цикл For Each
- •Возможности vba по созданию макросов Excel
- •Приемы работы в среде Visual Basic for Applications
- •Методические указания к выполнению работы Пример создания макроса
- •Порядок работы
- •Вариант 2. Письмо - поздравление
- •Вариант 3. Товарный чек
- •Вариант 4. Расчетный листок зарплаты
- •Порядок выполнения расчета.
- •Вариант 5. Комплектация изделия из составных частей
Функции пользователя
На языке VBA можно создавать новые функции - функции пользователя. Функция, в отличие от процедуры, возвращают одно вычисленное значение. Функция может участвовать в выражениях оператора присваивания.
Синтаксис заголовка функции:
Function <имя_процедуры>(аргументы) As <type>
тело процедуры (операторы)
End Function
Особенность: Тип величины, возвращаемой функцией, указывается как As <type>. В теле функции обязательно должен быть оператор присваивания, который вычисленное значение результата присваивает имени функции.
Ниже приведен пример использования пользовательской функции при вычислении площади прямоугольника:
Текст программы |
Комментарий |
Sub Proc_A ( ) Dim S as Single Dim LL as Single Dim HH as Single LL=12 HH=23 S=Sq(LL;H)/2+1200 End Sub Function Sq (H As Single; L As Single As Single) Sq=H*L End Function |
- вызывающая процедура: объявление переменных: - площадь - длина - высота - присвоение значений - переменным - формула вычисления площади с вызовом функции Sq - конец процедуры - объявление функции Sq с аргументами
- присвоение функции Sq результата вычисления - конец функции |
Управляющие структуры
VBA поддерживает структурное программирование и позволяет использовать стандартные управляющие структуры: условный оператор, альтернативная выборка, циклы.
Условный оператор If.
Синтаксис условного оператора:
If <выражение> Then <оператор>
Этот оператор обеспечивает проверку логического выражения (условия). Если это условие истинно (True), то выполняется простой или составной оператор, записанный после слова Then; если условие ложно (False), то работа оператора If заканчивается и управление передается оператору, следующему за If.
Составной оператор – это последовательность операторов одной строки, разделенных знаком двоеточием.
Примеры условных операторов:
If MP > 20,500.00$ Then MP=25,500.00$
If Stud_C(100).FName Like "Пе*" Then num=Slud_C (100).Gr
В выражениях могут использоваться специальные функции логических проверок VBA, а в логических выражениях можно использовать стандартные логические функции.
Таблица 8. Логические функции VBA.
Функция |
Описание |
|
Функция |
Описание |
Not And Or |
- инверсия или отрицание - логическое "И" - логическое "ИЛИ" |
|
Xor Imp Eqv |
- исключающее "Или" - импликация - эквивалентность |
Синтаксис цепочки вложенных операторов If:
If <выражение 1 > Then <блок операторов 1>
ЕlseIf <выражсние2> Then
<блок операторов2>
ElseIf <выражение3> Then
<блок операторов3>
[Else
<блок операторов Else>
End If
Поочередно выполняется проверка истинности выражений. Если выражение1 истинно, выполняется блок операторов1, иначе выполняется проверка истинности выражения2 и т.д. Если ни одно из выражений не является истинным, то выполняется блок операторов Else, если он имеется, иначе - оператор, следующий за End If. Примеры организация проверки цепочки вложенных операторов If:
Программа |
Комментарий |
If AgPr >120 Then DfPr = Full(234,456) ElseIf AgPr > 240 Then DfPr = Full(120,450) ElseIf AgPr > 360 Then DfPr = Full(240,500) Else DfPr = Full(360,700) End If |
Проверка условия 1: условие 1 истинно, то вызов процедуры иначе Проверка условия 2: условие 2 истинно,то вызов процедуры иначе Проверка условия 3: условие 3 истинно,то вызов процедуры иначе (т.е. условия 1-3 ложны) вызов процедуры Конец блока If |
