- •Лабораторная работа №2
- •Теоретические сведения
- •1. Понятие процедуры
- •Процедуры-подпрограммы
- •Функции
- •2. Переменные
- •Область видимости переменной
- •Числовые типы данных
- •Строковые типы данных
- •Логический тип данных
- •Тип данных Дата/время
- •Объектный тип данных
- •Тип данных Variant
- •Использование префиксов типов данных в именах переменных
- •3. Операции
- •Инструкции vba
- •Оператор присваивания
- •Условный оператор
- •Оператор выбора
Лабораторная работа №2
Тема:
Написание программ с использованием условного оператора “If … Then … Else ” и оператора выбора “Select … Case”.
Создание и использование пользовательских функций.
Условие задания:
написать процедуру (Sub), вычисляющую следующую функцию:
5, если х ≤ 0
z = x2+y2 , если х=5 или х=10
4(х – у), если х > 0 и х ≠ 5 и х ≠ 10
Алгоритм реализовать при помощи условного оператора “IF … Else”.
Значения х и у брать из ячеек В1 и В2 соответственно.
Результат вывести в ячейку В3.
Запуск процедуры осуществить по нажатию кнопки.
Написать пользовательскую функцию (function), вычисляющую функцию из задания 1.
Алгоритм реализовать при помощи оператора выбора “Select … Case”.
Значения х и у являются аргументами функции.
Ввести написанную пользовательскую функцию на листе Excel (как любую встроенную функцию Excel).
Теоретические сведения
1. Понятие процедуры
Программы VBA хранятся в проектах. Проекты состоят из модулей, включающих в себя процедуры. Процедура – это набор описаний и инструкции, сгруппированные для выполнения. В VBA используются процедуры двух типов: процедура Sub (процедура-подпрограмма или просто процедура) и процедура Function (функция).
Процедуры-подпрограммы
Процедура-подпрограмма – это набор команд, с помощью которого можно решить определенную задачу. При запуске процедуры выполняются содержащиеся в ней инструкции, а затем управление передается в приложение или процедуру, которая ее вызвала.
Синтаксис процедуры следующий:
[Public | Private] Sub имя ([аргументы])
Инструкции
[Exit Sub]
[Инструкции]
End Sub
Необязательные ключевые слова Public и Private используются для описания области видимости процедуры – во всех модулях проекта или только в том модуле, где процедура описана.
Ключевые слова Sub и End Sub используются в описании любой процедуры.
Параметр имя определяет имя процедуры.
Необязательный параметр аргументы представляет собой список перечисленных через запятую аргументов, передаваемых в процедуру.
Инструкция Exit Sub позволяет выйти из процедуры в любом ее месте (обычно применяется для обработки ошибок).
Функции
Процедура-функция также представляет собой набор команд, который решает определенную задачу. Различие заключается в том, что функция обязательно возвращает значение и, таким образом, может использоваться в любом выражении.
Упрощенный синтаксис функции:
[Public | Private] Function имя ([аргументы]) [As Тип]
Инструкции
имя = выражение
[Exit Function]
[Инструкции]
End Function
Основные различия в синтаксисе заключаются в следующем:
Ключевые слова Function и End Function используются в описании любой функции.
Параметр имя определяет имя функции.
Параметр тип позволяет явно задать тип данных, который возвращает функция. Если он опущен, то по умолчанию возвращается значение типа Variant.
Внутри функции обычно имеется инструкция имя = выражение, которое используется для задания возвращаемого значения. Параметр выражение определяет значение, которое должно быть совместимым с объявленным в параметре As тип типом данных для функции.
Инструкция Exit Function позволяет выйти из процедуры-функции.
Функции, описанные в модуле, как public становятся доступны для использования на листе Excel, так же как и все встроенные функции Excel. Все доступные пользовательские функции находятся в категории «Определенные пользователем».
Ниже приведен пример пользовательской функции которая возводит передаваемое ей число в квадрат:
Public Function VKvadrat(x As Single) As Single
Dim sngResult As Single
sngResult = x ^ 2
VKvadrat = sngResult
End Function