Глава 9. язык программирования vba
VBA (Visual Basic for Applications)– это язык программирования высокого уровня, встроенный во множество отдельных программ и прикладных пакетов, например MS Office.
В пособии рассматривается подмножество этого языка программирования, необходимое для написания алгоритмов (процедурная часть). Вводятся понятия проекта, модуля, процедуры и функции. Определяются понятия типов данных, переменных, массивов и основных операторов языка.
Для применения программ, написанных на VBA, использовано офисное приложение MS Excel, которое является удобной средой для обучения основам программирования и применения написанных программ для вычислений.
Основные понятия языка программирования VBA
Программа на VBA состоит из следующих «строительных блоков»:
· Оператор – это наименьшая единица. Он предназначен для определения переменной и выполнения какого-либо действия в программе.
· Процедура (Функция) – это отдельная единица программы, которую можно вызывать по имени для выполнения и которая может выполняться самостоятельно. Любая процедура содержит один или несколько операторов.
· Модуль – это именованная единица, состоящая из одной или нескольких процедур и раздела объявлений, в котором описываются переменные и константы.
· Проект – это именованная единица, включающая в себя все необходимые модули.
В курсе информатики будут рассмотрены только первые три блока.
Поясним некоторые понятия.
Компьютерная программа – это некоторый набор инструкций для выполнения с целью получения результата. Инструкции, выполняемые компьютером, называются операторами. Совокупность операторов образует процедуру или функцию. Процедуры и функции в свою очередь образуют модули, которые входят в состав проекта.
В любом языке программирования можно выделить понятия, которые используются для создания программы:
· типы данных;
· переменные и константы;
· массивы статические и динамические;
· операторы: описания, присваивания, условный и цикла;
· процедуры и функции.
Рассмотрим подробнее эти понятия в языке программирования VBA.
Типы данных VBA
Тип данных задает:
· область возможных значений;
· структуру организации данных;
· требуемую память;
· операции, определенные над данными этого типа.
Как и всякий язык, VBA содержит встроенные типы данных: логические, арифметические и строковые.
Числовые данные
В языке VBA используются шесть различных типов данных для хранения числовой информации и выполнения над ними различных действий. Рассмотрим четыре из них: Integer, Long, Single, Double.
Первые два типа данных (Integer и Long) относятся к целым типам данных, т.е. являются числами, имеющими только целую часть, а следующие два типа данных (Single, Double) относятся к типам данных с плавающей точкой, т.е. к числам, которые содержат целую и дробную часть и отличаются только своей точностью (здесь имеется в виду количество знаков после точки).
Для задач, требующих вычислений с целыми числами в диапазоне, ограниченном значением 32767 необходимо использовать тип данных — Integer, а для чисел большего диапазона VBA допускает использование типа Long (длинное целое).
Для задач, требующих более высокую точность вычислений, нужно использовать типы данных с плавающей точкой — Single или Double. Числа, сохраняемые с использованием типа Single, называются числами одинарной точности, а числа, сохраняемые с использованием типа Double, называются числами двойной точности.
Текстовые данные
Для сохранения любых текстовых данных в языке VBA используется тип данных String. Такие текстовые данные, которые сохраняются в программе VBA, принято называть строками, потому что текстовые данные обычно рассматриваются как строки символов различной длины. Это могут быть строки переменной длины, в которых могут храниться последовательности символов неограниченной длины, или строки фиксированной длины (не боле 65 400 символов). Строковые данные в языке VBA всегда заключаются в кавычки (" "), поэтому очень важно правильно понимать отличие между собственно числом и текстовым представлением числа. Например, исходя из указанного написания, значение 125 — это число, с которым можно выполнять различные математические действия, а "125" — текстовое значение, содержащее цифры и не являющееся числом, над которым можно выполнять какие-либо математические операции. Ниже приведен пример присваивания строкового значения.
s = "Это строка длиной 29 символов"
Если текстовое значение будет меньше размера строки фиксированной длины, то компилятор VBA добавит нужное число пробелов, дополняющее результат до полной длины этой строки.
Если же текстовое значение будет длиннее размера строки, то лишняя часть текста (справа) будет просто утеряна.
Тип Variant
Тип данных Variant — это такой тип данных, который может сохранять в себе данные любых типов из числа допустимых в языке VBA. В переменной типа Variant может быть заключен текст, числовые значения, даты и т.д. В языке VBA тип данных Variant принят по умолчанию, т.е. если переменная была создана без указания типа, то она автоматически создается с типом Variant. Переменные этого типа принимают характеристики того конкретного типа данных, к которому относятся значения, сохраняемые в них в данный момент. Для числовых данных Variant принимает характеристики числового типа Double, для строковых данных — характеристики типа String и т.д.
Благодаря такой гибкости переменные типа Variant очень удобны, поскольку избавляют программиста от необходимости использования конкретных типов данных. Нет необходимости думать о том, что именно будет храниться в той или иной переменной — достаточно просто всем им назначить тип Variant. Однако несмотря на все свои преимущества, этот тип данных предполагает использование большого объема памяти для хранения информации и требует значительных затрат времени при выполнении самых простых математических операций или операций сравнения.