Расположение операторов в одну строку



Использование знака двоеточия позволяет разместить несколько операторов в одной строке. Таким образом, следующие две конструкции эквивалентны:    

1. х = х + 1   
у = х + 2
и 
2. х = х + 1:у = х + 2

 

Операции в VBA

Арифметические

Арифметические операции VBA сведены в таблицу (Таблица 4).

Таблица 4. Арифметические операции.

Операция Описание
[Операнд1] + [Операнд2] Сложение
[Операнд1] - [Операнд2] Вычитание
- [Операнд] Перемена знака
[Операнд1] * [Операнд2] Умножение
[Операнд1] / [Операнд2] Деление
[Операнд1] \ [Операнд2] Целочисленное деление
[Операнд1] Mod [Операнд2] Остаток от деления по модулю
[Операнд1] ^ [Операнд2] Возведение в степень

Операнды должны быть числовых подтипов, результаты операций также являются числами.


Строковые

В VBA присутствует одна встроенная строковая операция: конкатенация (сложение) строк.

Синтаксис:


[Строка1] & [Строка2] или [Строка1] + [Строка2]    

 

Результатом операции будет строка, образованная слиянием Строки1 и Строки2.

Для сложения строк предпочтительнее, во избежание путаницы с арифметическим сложением, применять операцию со знаком &

Операции отношения

Операции отношения или операции сравнения сведены в таблицу (Таблица 5).

Таблица 5. Операции отношения.

Операция Описание
[Операнд1] < [Операнд2] Меньше
[Операнд1] > [Операнд2] Больше
[Операнд1] <= [Операнд2] Меньше или равно
[Операнд1] >= [Операнд2] Больше или равно
[Операнд1] <> [Операнд2] Не равно
[Операнд1] = [Операнд2] Равно
[Операнд1] Is [Операнд2] Сравнение двух операндов, содержащих ссылки на объекты
[Операнд1] Like [Операнд2] Сравнение двух строковых выражений

Оба операнда должны относиться к одному подтипу, результат операции будет булевского типа: True, если отношение выполняется и False если не выполняется.

Логические операции.

Логические операции перечислены в таблице (Таблица 6).


Таблица 6. Логические операции.

Операция Описание
[Операнд1] And [Операнд2] Логическое умножение
[Операнд1] Or [Операнд2] Логическое сложение
[Операнд1] Хог [Операнд2] Исключающее or (или)
Not [Операнд1] Логическое отрицание
[Операнд1] Imp [Операнд2] Логическая импликация (в настоящее время почти не используется)
[Операнд1] Equ [Операнд2] Логическая эквивалентность (в настоящее время почти не используется)

Операнды могут быть булевского или одного из числовых типов. Если операнды логических операций булевского типа, результат операции тоже будет булевского типа соответственно таблице истинности (Таблица 7). Операция Not одноместная и применяется только к Операнду1, остальные операции – двуместные. В других случаях выполняется побитовая логическая операция над двоичными представлениями операндов.

Таблица 7. Таблица истинности

Операнд1 Операнд2 And Or Xor Not Imp Equ
False False False False False True False True
False True False True True True True False
True False False True True False False False
True True True True False False False True

 

Чаще всего логические операции используются для объединения нескольких операций сравнения. Например, если имеется несколько переменных «a», «b», «c» , каждая из которых должна быть меньше двадцати, и в программе необходимо проверить этот факт, формулируется условие 

(a<20) And (b<20) And (c<20)  

которое выполняется (результат равен True – истина) только в случае, когда значение каждой переменной меньше двадцати. Если хотя бы одна переменная содержит значение большее или равное двадцати, условие не выполняется и результат сравнения будет равен False.

Приоритеты операций

VBA выполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовке значений выражений. Приоритеты выполнения операций приведены в таблице (Таблица 8).

Таблица 8. Приоритеты операций.

Приоритет Операция
1 Вызов функции и скобки
2 ^
3 - (смена знака)
4 *, /
5 \
6 Mod
7 +, -, &
8 >, <, >=, <=, <>, =
9 Not
10 And
11 Or
12 Xor
13 Equ
14 Imp

Операции с одинаковым приоритетом выполняются слева направо.

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

Функция определяет зависимость возвращаемого значения от одного или нескольких аргументов, называемых параметрами. Тип значения функции и типы аргументов совпадают с типами данных VBA и определены в описании функции.

В VBA имеется большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разбить на следующие основные категории:

1. Математические функции

2. Функции проверки типов

3. Функции преобразования форматов

4. Функции обработки строк

5. Функции времени и даты

Ниже рассмотрены основные функции из этих категорий.

Математические функции

Математические функции перечислены в таблице (Таблица 9).

Таблица 9. Встроенные математические функции VBA

Функция Возвращаемое значение
Abs (число) Модуль (абсолютная величина) числа
Atn (число) Арктангенс
Cos (число) Косинус угла, заданного в радианах.
Ехр (число) Экспонента, то есть результат возведения основания натурального логарифма в указанную степень
Log (число) Натуральный логарифм
Rnd (число) Случайное число из интервала [0,1). Если число меньше нуля, то Rnd возвращает каждый раз одно и то же число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то — следующее случайное число в последовательности; если число равняется нулю, то — случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента
Sgn (число) Знак числа. Возвращает -1, 0 или 1.
Sin (число) Синус
Sqr (число) Квадратный корень из числа
Tan (число) Тангенс
Fix (число) И Int (число) Обе функции, Int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному

Функции проверки типов

Функции проверки типов (Таблица 10) проверяют, является ли переменная выражением специфицированного типа.

Таблица 10. Функции проверки типов VBA

Функция Специфицированный тип
IsArray (переменная) Является ли переменная массивом
IsDate (переменная) Является ли переменная датой
IsEmpty (переменная) Была ли переменная описана инструкцией Dim
IsError (переменная) Является ли переменная кодом ошибки
IsNull (переменная) Является ли переменная пустым значением (Null)
IsNumeric (переменная) Является ли переменная числовым значением
IsObject (переменная) Является ли переменная объектом

Возвращаемое значение имеет булевский тип: True, если переменная имеет специфицированный тип и False, если не является.


Дата добавления: 2018-05-12; просмотров: 301; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!