Детально розглянемо те, як VBA виконує такі арифметичні операції, як додавання, віднімання, множення, ділення і піднесення до степеня, а також особливі операції, такі як цілочисельне ділення і розподіл по модулю. Нижче, в таблиці, представлені знаки операцій, які використовуються при написанні арифметичних VBA-виразів.
Вираз - це значення або група значень, що виражає окреме значення. Результат виразу - одне значення певного типу даних. Знаки (позначення) операцій використовуються для дій над певними значеннями в виразах. Для присвоювання результату виразу змінної використовується оператор присвоювання (=), який зберігає будь-яке значення, представлене виразом праворуч від оператора присвоювання в комірці пам'яті, на яку посилається змінна зліва від цього оператора.У всіх операціях наведених нижче, обидва операнди повинні бути чисельними виразами або рядками, які VBA може перетворити в число.
Знак (+) використовується для виконання операції додавання. Складові повинні бути чисельними виразами, рядками, які VBA може перетворити в числа або датами, з якими також можливі арифметичні дії.
Тип даних результату виразу складання зазвичай той же, що і найбільш точний тип в цьому виразі за деякими винятками. Всі виключення з цього правила наочно представлені в прикладах.
Знак (-) використовується для виконання операції віднімання, а також для позначення негативних чисел (коли ставиться перед змінною або виразом і означає те ж саме, що і множення на -1). Знак мінуса, який поміщають перед числом для позначення того, що число негативне, називають унарним мінусом.
Для визначення типу даних результату виразу вирахування VBA слід тим же правилам, що і для виразів, які використовують знак операції додавання, але є два додаткові правила.
Правило 1. Якщо у виразі віднімання один з операндів є типом Date, то і результат вираження матиме тип Date.
Правило 2. Якщо в вираженні вирахування обидва операнда є типом Date, то результат виразу матиме тип Double.
Знак (*) використовується для виконання операції множення, результатом цієї операції є твір операндів. Для визначення типу даних результату виразу множення VBA використовує ті ж правила, що і для виразів, які використовують додавання. У виразах множення всі змінні Variant, що містять значення типу Date, перетворюються в чисельні значення.
Знак (/) використовується для виконання операції ділення, цей знак називають знаком ділення дійсних чисел. У виразах ділення один операнд ділиться на інший, а результатом поділу є приватна.
Якщо будь-який операнд у виразі ділення має значення Null, то результатом виразу також буде Null. Тип даних у виразах ділення дійсних чисел зазвичай Double, але трапляються й винятки.
Якщо у виразі ділення обидва операнда мають тип Integer або Single, то результат виразу розподілу має тип Single. Якщо результат переповнює діапазон для типу Single, то VBA перетворює його в тип Double.
цілочисельне ділення
Знак (\) використовується для виконання операції цілочисельного ділення, при якому результатом ділення завжди є ціле число без дробової частини. VBA НЕ округлює приватне цілочисельного ділення, а просто вкорочує його до цілого числа, відкидаючи дробову частину.
Тип даних результату виразу цілочисельного ділення - або Integer, або Long. VBA використовує найменший тип даних, який відповідає результату виразу.
Розподіл по модулю
Знак (Mod) використовується для виконання операції ділення по модулю. При розподілі по модулю вираз повертає тільки залишок від ділення як ціле.
Доступне для розуміння пояснення цієї математичної операції наведено на одному з форумів програмістів. Наведу цитату звідти: "уяви, що є повна 50л каністра і 3л банку. І ти починаєш вичерпувати з каністри банкою воду (набирати можна тільки повну банку). 48л вичерпав, залишилося 2 літри. Це і є залишок від ділення 50 на 3 по модулю . " Іншими словами 50 Mod 3 повертає 2.
Тип даних результату виразу розподілу по модулю - це Integer або Long. VBA використовує найменший тип, який підходить для результату вирази.
Зведення в ступінь
Знак (^) використовується для виконання операції піднесення до степеня числа або виразу. Показник ступеня показує, скільки разів число або вираз повинна бути помножена на саме себе.