Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Основы программирования VBA
К основным структурным элементам программирования VBA относятся · Типы данных · Переменные и константы · Процедуры ввод и вывод Допустимые имена В VBA пользователь определяет имена переменных, функций, процедур, типов, постоянных и других объектов. Вводимые пользователем имена должны отражать суть обозначаемого объекта так, чтобы делать программу легко читаемой. В VBA имеются следующие ограничения на имена: 1. Длина имени не должна превышать 255 символов. 2. Имя не может содержать точек, пробелов и следующих символов: %, #, @, $. 3. Имя может содержать любую комбинацию букв, цифр и символов, начинающуюся с буквы. 4. Имена должны быть уникальны внутри области, в которой они определены. 5. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур. Хотя верхний или нижний регистр букв в имени не имеет значения, умелое использование его может существенно облегчить понимание содержательной стороны переменной. Типы данных Типы данных относятся к самим фундаментальным понятиям любого языка. Тип данных определяет множество допустимых значений, которое может принимать указанная переменная. В таблице 5.1. приведены основные типы данных: Таблица 5.1. Основные типы данных
Переменные Переменные в программе создаются для того, чтобы хранить какие-либо данные. Перед тем как использовать переменную, ее необходимо описать. Объявить переменную можно двумя способами: явным и неявным. Явное объявление означает, что переменная должна быть объявлена перед ее использованием. Явно переменную можно объявить одним следующих способов: Dim ИмяПеременной1 [ As Тип1] [,ИмяПеременной2 [ As Тип2]]… Private ИмяПеременной1 [ As Тип1] [,ИмяПеременной2 [ As Тип2]]… Static ИмяПеременной1 [ As Тип1][,ИмяПеременной2 [ As Тип2]]… Public ИмяПеременной1 [ As Тип1] [,ИмяПеременной2 [ As Тип2]]… Параметр Описание Dim , Private , Ключевые слова, определяющие, где и как можно static , Public использовать переменную. Имя _П еременной Имя переменной, удовлетворяющее стандартным правилам Тип Тип данных переменной. Для каждой описываемой переменной следует использовать отдельное предложение As Тип. Объявление каждой переменной делает программу надежнее и, кроме того, убыстряет ее работу, т. к. VBA не требуется тратить время на распознание типа неописанной переменной при каждом обращении к ней. Например, следующая инструкция объявляет переменную с типом Integer. Dim N As Integer Если тип данных при объявлении переменной опущен, то по умолчанию переменная получает тип Variant. Например, следующая инструкция объявляет переменную х типа Variant. Dim x Хотя переменные обычно объявляются в начале процедуры или функции, они могут быть объявлены в любом месте до того, как в коде встречается первая ссылка на них. Например, Dim х As Single х = 1 Dim y As Single У = x + 1 Неявное объявление переменной осуществляется включением в конец ее имени специального символа, устанавливающего тип переменной. В этом случае переменную не надо объявлять перед тем, как ее использовать. В таблице 5.2. приведены описания специальных символов. Таблица 5.2. Символы неявного объявления переменных
Если переменную в программе заранее не объявлять, то создание будет происходить автоматически при первом же присвоении ей какого-либо значения. Для обязательного объявления переменных в модуле в его начале, в так называемой области модуля General Declaration надо поместить инструкцию Option Explicit . Использование этой инструкции не допускает возможности неправильного ввода имени переменной, которая используется в одной или нескольких процедурах модуля. Если установить в меню Tools команда Options вкладка Editor настройку Require Variable Declaration , то в каждый создаваемый модуль в раздел Declarations будет добавляться оператор Option Explicit. Область видимости переменной определяет область кода, которая "знает" о существовании данной переменной. При определении переменной в процедуре получить или изменить ее значение можно только из кода этой процедуры. Можно объявить переменной с более обширной областью видимости. Существуют три типа такой области: · Переменные уровня процедуры распознаются только в процедуре, в которой они описаны при помощи инструкций Dim или Static. Такие переменные называются локальными. · Переменные уровня модуля используются только в модуле, в котором они описаны перед описанием процедур при помощи инструкций Dim или Private, но не в других модулях данного проекта. · Переменные уровня модуля, описанные при помощи инструкции Public являются доступными для всех процедур проекта. Такие переменные называются открытыми. Private переменная [As тип] Static переменная [As тип] Public переменная [As тип] Ключевое слово Private описывает локальные переменные, которые используются только в процедуре, в которой были описаны. Ключевое слово Static описывает переменную тоже как локальную только лишь с той разницей, что последнее значение переменной не будет потеряно. Переменные, описанные с помощью ключевого слова Public являются глобальными. Константы Константы, в отличие от переменных не могут изменять своего значения. Синтаксис: [ Public | Private ] Const ИмяКонстанты [ As Тип] = Выражение Параметр Описание Public Ключевое слово, используемое на уровне модуля для объявления констант, доступных всем процедурам во всех модулях. Не допускается в процедурах. Private Ключевое слово, используемое на уровне модуля для объявления констант, доступных только внутри модуля, в котором віполнено описание. Не допускается в процедурах. Имя Константы Имя константы, удовлетворяющее стандартным правилам Тип Один из поддерживаемых типов. Для каждой константы следует использовать отдельное предложение As Тип. Выражение Литерал, другая константа или любое сочетание, которое включает все арифметические или логические операторы, за исключением Is. Пример . Private Const ПроцСтавка As Single = 0.2 Public Const Фирма = "Транспортное агентство: Керчь" Операции над данными В программах VBA можно использовать стандартный набор операций над данными. Имеются три типа операций: · Математические, выполняются над числами и их результатом являются числа; · Отношения, применяются не только к числам, но и к их результатам и их результатом являются логические значения; · Логические, применяются логическими выражениями и их результатом являются логические значения В таблице 5.3. приведены операторы, используемые при различных типах операций. Таблица 5.3. Виды операторов
Математические операторы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Возведение в степень | ^ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Деление | / | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Целочисленное деление | \ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Остаток от деления | Mod | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Умножение | * | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сложение | + | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вычитание | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Перемена знака | – | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Операторы отношений | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меньше | < | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Больше | > | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меньше или равно | <= | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Больше или равно | >= | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Не равно | <> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Равно | = | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сравнение двух строковых выражений | Like | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вычитание | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Логические операторы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Логическое умножение | And | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Логическое сложение | Or | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Логическое отрицание | Not | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Другие операторы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сложение строк | & |
VBA выполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовании значений выражений. В таблице 5.4. приведены приоритеты выполнения операций.
Таблица 5.4. Приоритеты операций.
Приоритет | Операция |
1. | Вызов функции в скобке |
2. | ^ |
3. | – (смена знака) |
4. | * и / |
5. | \ (деление на целое) |
6. | Mod (остаток от деления на целое) |
7. | + и – |
8. | >, <, <=, >=, = и <> |
9. | Not |
10. | And |
11. | Or |
Встроенные функции VBA
В VBA имеется большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:
· математические функции;
· функции проверки типов;
· функции преобразования форматов;
· функции обработки строк;
· функции времени и даты;
· финансовые функции.
В таблице 5.5. рассмотрены основные математические функции.
Таблица 5.5. Математические функции
Функция | Возвращаемое значение | ||
Abs(x) | Модуль (абсолютная величина) числа | ||
Atn(x) | Арктангенс | ||
Cos(x) | Косинус | ||
Exp(x) | Экспонента, т. е. результат возведения основания натурального логарифма в указанную степень | ||
Log(x) | Натуральный логарифм | ||
Rnd(x) | Случайное число из интервала [0,1]. Если x меньше нуля, то Rnd возвращает каждый раз одно и то же число. Если x больше нуля или опущено, то Rnd возвращает следующее случайное число в последовательности. Если x равняется нулю, то Rnd возвращает случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функции Rnd используется инструкция Randomize. | ||
Sgn(x) | Знак числа | ||
Sin(x) | Синус | ||
Sqr(x) | Квадратный корень из числа | ||
Tan(x) | Тангенс | ||
Int(x) | Обе функции Int и Fix отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями I nt и Fix состоит в том, что для отрицательного значения параметра x функция I nt возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному. |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 435; Нарушение авторского права страницы