Оператори мови VBA.


Синтаксис і дані мови VBA.

Програмування в EXCEL

Синтаксис – це сукупність правил, що визначають порядок використання і організацію елементів мови.

Типи даних- це певні види даних, які VBA зберігає і може маніпулювати.

Тип даних Опис і діапазон значення
Byte Зберігання позитивних чисел від 0 до 255
Boolean Зберігання логічних значень: True, False
Currency Зберігання чисел для точних обчислень в діапазоні от -922337203685477,5808 до 922337203685477,5807
Date Зберігання дати і часу. Дати від 1.01.100 до 31.12.9999 Час від 00:00:00 до 23:59:59
Double Зберігання чисел подвійної точності від -1,79769313486232*10308 до -4,94065645841247*10-324 від 4,94065645841247*10-324 до 1,79769313486232*10308
Integer Зберігання цілих чисел від -32768 до 32767
Long Зберігання цілих чисел від -2147483648 до 2147483647
Single Зберігання чисел одинарної точності від -3,402823*1038 до -1,401298*10-45 від 1,401298*10-45 до 3,402823*1038
String Зберігання тексту довжиною до 2 млрд. символів
Variant Зберігання будь-якого типу даних

 

Оператор – це символ, або вираз, який дає вказівку програмі виконати певну дію над конкретними даними. VBA містить декілька категорій операторів: оператор присвоєння; числові і текстові оператори; логічні оператори; оператори порівняння.

Оператор присвоєння. Символ дорівнює (=) в VBA є оператором присвоювання і використовується для присвоєння значення змінній. Правила запису оператора присвоєння наступні: ліворуч від оператора присвоєння повинна стояти змінна, якій передається значення; праворуч від оператора присвоєння повинен стояти вираз.

Операція присвоєння має дві синтаксичні форми:

1. Let varname = expression;

2. varname = expression;

varname - будь-яка змінна VBA

expression - будь-який вираз VBA

Перший варіант операції присвоєння використовувався в ранніх мовах програмування Basic. Другий варіант використовується в сучасній версії VBA.

При виконанні оператора присвоєння VBA спочатку обчислює вираз праворуч від оператора присвоєння, а потім зберігає результат виразу в змінній, ім’я якої знаходиться зліва від знаку рівності.

X = 5 + 7; Y = X + 5 ; Z = X - Y; A = B; I = I + 1.

Початкуючим користувачам іноді незрозумілий сенс останньої операції присвоєння, коли і в лівій, і в правій частинах операції є одна і та ж змінна. В цьому випадку спочатку в проміжний елемент пам’яті поміщається результат обчислення виразу правій частині оператора присвоєння, а потім цей результат привласнюється змінною в лівій частині.

Наприклад, якщо в операторі присвоєння А = А +5, змінна А до операції присвоєння містила значення 7, то після операції вона міститиме значення 12 (7+5).

Слід запам’ятати:

· Можна присвоювати будь-яку чисельну змінну (або вираз) будь-якої іншої змінної чисельного типу (або змінній типу Variant );

· Якщо привласнюється чисельний вираз змінній, що типізується, з меншою точністю (наприклад, Double - Long), VBA округляє значення виразу для збігу з точністю змінної, що набуває нового значення;

· Якщо змінною типу String привласнюється змінна типу Variant , що містить число, VBA автоматично перетворить це число в рядок.

Оператор додавання (+)

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

Тип даних результату виразу додавання зазвичай той же, що і найбільш точний тип в цьому виразі. Але, є виключення:

· Результатом додавання типу Single і Long буде Double;

· Результатом додавання типу Date з будь-яким іншим типом даних завжди буде Date;

· Якщо результат перевищує діапазон типу Integer, то VBA перетворить його в Long;

· Якщо результат перевищує типи Long, Single, Date, то VBA перетворить його в Double;

· Якщо будь-який операнд у виразі додавання є Null, то результатом виразу додавання також буде Null.

Нагадаємо порядок збільшення точності для чисельних типів даних: Byte, Integer, Long, Single, Double, Currency.

Слід сказати, що треба чітко розуміти як VBA перетворить типи даних в результаті арифметичних операцій. Це допоможе надалі уникнути багатьох "непотрібних" помилок при написанні кодів.

Оператор віднімання (-)

Оператор віднімання виконує два завдання: використовується для віднімання одного числа з іншого; позначає унарний мінус (це знак мінус, який поміщається перед числом для вказівки того, що це негативне число). Помістити унарний мінус перед змінною або виразом означає те ж, що помножити це число -1.

Обидва операнди у виразі віднімання мають бути чисельними змінними (виразами) або строковими виразами, яке VBA може перетворити в число. Можна використовувати оператора віднімання для роботи з датами.

VBA використовує ті ж правила для визначення типу даних результату виразу віднімання, що і для виразів, що використовують оператора додавання. Але, є доповнення: Якщо обидва операнди у виразі є типом Date, то результат виразу матиме тип Double.

Оператор множення (*)

Оператора множення перемножує два числа - результатом виразу множення є твір двох операндів. Обидва операнди у виразі множення мають бути чисельними виразами або рядками, які VBA може перетворити в число.

VBA слідує тим же правилам для визначення типу даних результату виразу множення, що і для виразів, що використовують оператора додавання. У виразах множення всі змінні Variant, які містять значення типу Date, перетворяться в чисельні значення.

Оператор ділення (/)

Оператор ділення з плаваючою комою виконує звичайне арифметичне ділення своїх операндів.

У виразах ділення перший операнд ділиться на другий операнд - результатом ділення є часткове.

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

Якщо хоч би один операнд у виразі ділення має тип Null, то результат ділення також буде Null.

Типом даних операції ділення з плаваючою комою є Double, за виключенням:

· Обидва операнди у виразі ділення мають тип Integer або Single - результат Single;

· Якщо результат виразу не переповнює діапазон значень для типу Single.

Цілочисельне ділення (\)

Цілочисельне ділення відрізняється від ділення з плаваючою комою тим, що його результатом завжди є ціле число без дробової частини.

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

Перед виконанням операції цілочисельного ділення VBA округляє кожен операнд до числа типу Integer або Long (такий же тип має і результат цілочисельного ділення).

VBA відкидає (але не округляє!) будь-який дробовий залишок результату виразу цілочисельного ділення. Наприклад, вирази 22\5 і 24\5 матимуть один і той же результат = 4.

Якщо хоч би один операнд у виразі цілочисельного ділення має тип Null, то результат ділення також буде Null .

Ділення по модулю (Mod )

Ділення по модулю як би доповнює цілочисельне ділення. У діленні по модулю вираз повертає тільки залишок операції ділення як ціле.

22 Mod 5 = 4 24 Mod 5 = 8 25 Mod 5 = 0.

Решта властивостей ділення по модулю ідентична цілочисельному діленню.

Піднесення до степені (^)

Оператор піднесення до степені підносить число до степені.

5 ^ 3 =125.

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

Операнд зліва від оператора піднесення до степені може бути негативним числом тільки, якщо операнд справа є цілим.

Результат виразу має тип Double .

Якщо хоч би один операнд у виразі має тип Null, то результат піднесення до степені також буде Null.

Підведемо підсумок вищевикладеному: