Встроенные функции

В 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 не определены операции с массивом как единым целым, поэтому любая обработка массивов осуществляется поэлементно.