Для виконання обчислень і інших маніпуляцій в VBA використовуються вирази. Вираз - це будь-яка комбінація операндів або елементів даних (чисел, констант, змінних, функцій і інших операндів) і знаків операцій.
Операнди (operands) в програмуванні - це об'єкти, над якими виконують певні дії (операції).
Знаки операцій - це символи, які використовують для з'єднання операндів у виразі.
Операції в VBA - це дії, які виробляють над операндами. Знаки операцій у виразі мають свої пріоритети.
Вирази можуть складатися з одного операнда, а можуть складатися з комбінації операндів і знаків операцій. Результатом обчислення виразу є значення, яке повинно мати допустимий в VBA тип даних.
Відзначимо, що в одному вираженні можна використовувати несумісні типи даних.
До операцій, які використовуються для запису виразів в VBA, відносять:
- операції присвоювання;
- математичні операції;
- логічні операції;
- операції порівняння (відносин);
- операції для роботи з рядками (строкові операції).
операція присвоювання
Синтаксис даної операції має вигляд:
- Ім'я_змінної - ім'я змінної (ідентифікатор);
- Символ «=» - знак операції привласнення;
- вираз - значення (число), комбінація змінних, констант, функцій, пов'язаних знаками операцій.
Операція присвоювання наказує виконати вираз, заданий в його правій частині, і привласнити результат імені змінної, ім'я якої зазначено в лівій частині.
Для присвоювання змінної посилання на об'єкт застосовується інструкція Set. У загальному випадку інструкція Set має наступний синтаксис:
$ Set objectvar = [New] objectexpression [Nothing] $
Вирішуємо контрольні з усіх предметів. 10 років досвід! Ціна від 100 руб. термін від 1 дня!
Математичні оператори - це ніщо інше, як інструкції, в яких використовують математичні операції.
У VBA використовуються наступні математичні операції: додавання (+), віднімання (-), множення (*), ділення (/), розподіл без залишку (), залишок від ділення по модулю (mod), зведення в ступінь (^).
При цьому кожна операція має свій пріоритет, або як його ще називають ранг. Операції 1 рангу матимуть найвищий пріоритет і в програмному операторі виконуватися першими. Операції одного рангу в виразах виконуються згідно правил асоціативності (зліва направо або навпаки). Так операцією 1 рангу буде вираз, укладену в дужки (), 2 пріоритет має операція виклику функції, 3 - операція піднесення до степеня (^) і так далі, найнижчий пріоритет 12 має операція Or.
Оператор складання (+)
За допомогою цього оператора виконують просте додавання. При цьому обидва операнда - це чисельні вираження або рядки, які можна перетворити в число. Оператор складання також використовується при виконанні математичних операцій з даними типу Date.
Тип даних результату виразу складання, як правило, такий же, як і найбільш точний тип в цьому виразі. Але, трапляються й винятки:
- при додаванні типів Single і Long результатом стане тип Double;
- при додаванні типу Date з будь-яким іншим типом даних результат завжди буде мати тип Date;
- при перевищенні результатом діапазону типу Integer, його перетворять у тип Long;
- при перевищенні результатом типів Long, Single, Date, його перетворять у тип Double;
- якщо будь-який операнд у виразі складання матиме тип Null, то і результат вираження складання також матиме тип Null.
Оператор віднімання (-)
Даний оператор виконує два завдання:
- використовується при відніманні одного числа з іншого;
- позначає унарний мінус (це знак мінус, який поміщається перед негативним числом).
Помістити унарний мінус перед змінною або виразом означає те ж, що помножити це число на -1. Обидва операнда у виразі вирахування повинні бути чисельними змінними (виразами) або строковими виразами, які можна перетворити в число. Даний оператор можна використовувати для роботи з датами.
VBA використовує ті ж правила для визначення типу даних результату виразу віднімання, що і для виразів, які використовують оператор додавання. Але, є доповнення: якщо обидва операнда у виразі є типом Date, то результат виразу матиме тип Double.
Оператор множення (*)
Даний оператор перемножує два числа - результатом виразу множення є твір двох операндів. Обидва операнда у виразі множення повинні бути чисельними виразами або рядками, які можна перетворити в число.
VBA слід тим же правилам для визначення типу даних результату виразу множення, що і для виразів, які використовують оператор додавання. У виразах множення всі змінні Variant, які містять значення типу Date, перетворюються в чисельні значення.
Оператор ділення (/)
Оператор ділення з плаваючою точкою виконує звичайне математичне розподіл своїх операндів. У виразах ділення перший операнд ділиться на другий і результатом поділу є приватна.
Обидва операнда у виразі ділення з плаваючою точкою повинні бути чисельними виразами або рядками, які можна перетворити в число. Якщо хоча б один операнд у виразі поділу матиме тип Null, то результат ділення також матиме тип Null.
Типом даних операції ділення з плаваючою точкою є Double, за винятком випадків, коли:
- обидва операнда у виразі ділення мають типи Integer або Single - результат буде мати тип Single;
- результат виразу не переповнює діапазон значень для типу Single.
Цілочисельне ділення ()
Цілочисельне ділення відрізняється від ділення з плаваючою точкою тим, що його результатами завжди є цілі числа без дробової частини, чисельними виразами або рядки, які можна перетворити в число. Перед виконанням операції цілочисельного ділення кожен операнд округляється до числа типу Integer або Long. VBA відкидає (але не округлює!) Будь-дробовий залишок результату виразу цілочисельного ділення. Наприклад, вирази 22 \ 5 і 24 \ 5 матимуть один і той же результат = 4. Якщо хоча б один операнд у виразі цілочисельного ділення має тип Null, то результат ділення також матиме тип Null.