Операнди, операції, вираження в vba

Для виконання обчислень і інших маніпуляцій в 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.

Схожі статті