В VBA имеется большой набор встроенных функций, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:
─ математические функции;
─ функции обработки строк;
─ функции проверки, определения и преобразования типов данных;
─ функции времени и даты;
─ финансовые функции и др.
Функция задается с помощью указателя функции, который записывается в виде имени, и аргументов, заключенных в круглые скобки. Аргументами могут быть константы, переменные, функции, арифметические выражения.
Список встроенных математических функций приведен в табл. 3.
Таблица 3. Перечень математических функций
Название функции | Имя | Примечание |
Синус Косинус Тангенс Арктангенс Показательная Логарифм натуральный Корень квадратный Абсолютное значение Целая часть числа Наибольшее целое, не превышающее х. Знак числового выражения Случайное число | SIN(X) COS(X) TAN(X) ATN(X) EXP(X) LOG(X) SQR(X) ABS(X) FIX(X) INT(X) SGN(X) RND(n) | Х в радианах Х>0 X>0 1 для х>0, 0 для х=0, -1 для х<0 |
Функции, отсутствующие в числе встроенных, необходимо записывать с использованием встроенных функций, например:
3.7. Массивы данных
Достаточно часто в практических задачах требуется обрабатывать группы однотипных данных, например, оценки каждого студента в группе, среднесуточные температуры воздуха в течение месяца (или года), массу каждого вагона в составе поезда и т. п. В программах такие группы однородных объектов удобно представлять в виде массива данных.
Массив – упорядоченный набор переменных одного типа, имеющий общее имя и совокупность индексов для ссылок на элементы массива.
Отдельные переменные в массиве называются элементами массива. Все элементы одного массива имеют одно и то же имя – имя массива. Для образования имен массивов используются те же правила, что и для образования имен простых переменных. Каждый элемент в массиве имеет индекс (номер), по которому можно обратиться к значению элемента. Таким образом, индексированные переменные (переменные с индексом) служат для обозначения элементов массива.
Индекс является числовым выражением целого типа и записывается в круглых скобках после имени массива.
Массивы бывают одномерными, двумерными и многомерными. Число индексов, определяющих положение элемента, называется размерностью массива. Так, для одномерного массива размерность равна единице, для двумерного – размерность равна двум. Одномерный массив (или вектор) представляет собой строку или столбец переменных (линейную таблицу). Двумерный массив представляет собой матрицу или прямоугольную таблицу, элемент в которой задается номерами строки и столбца.
Примеры записи элементов массивов:
А(2) – элемент одномерного массива;
С(1, 3) – элемент двумерного массива. Индексы в двух- и многомерных массивах отделяются друг от друга запятыми.
Общее количество элементов в массиве называется размером массива (не путать с размерностью!)
Под массивы, так же как и под простые переменные, ЭВМ должна выделить область памяти. Необходимо заранее сообщить ЭВМ, какие массивы будут использованы в программе и каков размер каждого массива для того, чтобы машина выделила соответствующее количество ячеек памяти для последующего размещения в них элементов массива. Эта операция называется объявлением массива и выполняется с помощью оператора DIM.
Формат оператора:
DIM имя_массива AS тип [, имя_массива AS тип]
После имени массива в круглых скобках указываются верхние границы каждого индекса. Нижняя граница индекса по умолчанию равна нулю, т.е. нумерация элементов массива начинается с нуля. Если до оператора DIM записать оператор OPTION BASE 1, тогда нумерация элементов массива начнется с единицы.
Примеры:
DIM A (10) AS INTEGER ‘одномерный целочисленный массив из 11-и элементов
DIM P (3, 4) AS SINGLE ‘двумерный массив из вещественных чисел, состоящий из 20-и элементов: 4-х строк и 5-и столбцов
При необходимости можно явно указывать интервал изменения номеров элементов массива, например:
DIM W (3 TO 8) AS INTEGER
DIM Z (1 TO 3, 1 TO 5) AS SINGLE
Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляется как динамический. Для этого при объявлении массива не указывается его размерность, например DIM A ( ) AS INTEGER. В ходе выполнения программы возможно изменить размер динамического массива командой ReDim, например ReDim А (1 To 8). Если необходимо сохранить данные в массиве при изменении размерности, то перед именем массива записывается ключевое слово Preserve: ReDim Preserve А (1 To 8).
В VBA не определены операции с массивом как единым целым, поэтому любая обработка массивов осуществляется поэлементно.