Функции пользователя. Типы переменных.
Функции пользователя.
Из всех задач, которые можно решить на VBA, мы ограничимся созданием функций пользователя. С функциями пользователя можно работать с помощью мастера функций точно так же, как и со встроенными функциями рабочего листа.
По умолчанию созданная нами функция будет размещена в разделе Функции, определенные пользователем Мастера функций и дальнейшая работа с ней будет производиться аналогично библиотечным функциям.
Общий вид функции пользователя:
Function ИМЯ_ФУНКЦИИ (СПИСОК_ПАРАМЕТРОВ)
ТЕЛО_ФУНКЦИИ
End Function
Имя функции или переменной: последовательность букв, цифр и символа подчеркивания, начинающаяся с буквы.
Замечание: пробелы внутри имен недопустимы, поэтому они заменяются символом подчеркивания.
ТЕЛО_ФУНКЦИИ состоит из описательной части и блока операторов, выполняющихся один за другим.
Переменные и константы.
Все переменные в VBA имеют тип. Тип указывает, что может хранить переменная: целое число, строку, дату и т.д. Базовые типы переменных приведены в таблице
Типы данных |
Занимаемый размер памяти (байт) |
Диапазон |
Boolean (Логический) |
2 |
True (Истина) или False (Ложь) |
Integer (Целое) |
2 |
От –32768 до +32768 |
Long (Длинное целое) |
4 |
От -2 147 483 до +2 147 483 647 |
Single (Число с плавающей точкой) |
4 |
По абсолютной величине
от
|
Data (Дата) |
8 |
От 1 января 100г. до 31 декабря 9999г. |
Array (Массив) |
Зависит от размера массива и типа элементов массива |
|
Double (Число с плавающей точкой двойной точности) |
8 |
По абсолютной величине
от
до
|
Object (Объект) |
4 |
Любой определенный обьект |
String (Строка переменной длины) |
10+длина строки |
От 0 до
|
Currency (Денежный) |
8 |
От -9220337020306850477,5808 до 9220337020306850477,5808 |
Variant (Вариант) |
Зависит от содержимого переменной |
|
Если не указан тип переменной, то по умолчанию используется тип Variant. Переменные этого типа могут хранить все, что в них поместят, т.е. их тип изменяется в зависимости от последнего присвоения. Однако указание конкретного типа позволяет делать функции более быстрыми и надежными.
Переменную в VBA можно описать с помощью следующей конструкции:
Dim ИМЯ_ПЕРЕМЕННОЙ As ТИП ПЕРЕМЕННОЙ
Пример
Dim А As Integer (переменная А - целое число)
Dim C, D As Integer, E As Single (переменные C, D - целые числа; переменная E - число с плавающей точкой или действительное число)
Dim В(3,3) As Single (двухмерный массив 3х3 (матрица), состоящий из действительных чисел)
При описании типов переменных, являющихся параметрами функций, Dim опускается.
Пример
Function Y (x As Double) As Double
Если библиотечная функция Excel не является встроенной функцией VBA, то обязательно указывается, что она принадлежит объекту Application (приложение). Тем самым мы указываем, что используем не функцию VBA, а функцию Excel.
Пример
Application.Pi() (функция Excel ПИ() )
Application.Ln(x) (функция Excel Ln(x) )
Знак «=» является оператором присваивания, который предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, расположенный в левой части. Например, в результате действия следующей пары операторов
Х=2
Х=Х+2
переменной Х будет присвоено значение 4.
Десятичная дробь записывается через «точку».
Пример1.
Создать функцию пользователя, которая вычисляет значение Result., где Result=x+y.
В новой рабочей книге выполнить команду Сервис – Макрос – Редактор Visual basic. В окне редактора выполнить команду Insert – Module. В окне модуля ввести следующую функцию пользователя:
После ввода функции пользователя выбрать команду File – Close And Return To Microsoft Excel или нажимается комбинация клавиш Alt-Q.
Проверить появление в Мастере функций в разделе Определенные пользователем функции Result.
Создать на рабочем листе следующую таблицу
Результат
