Змінна – це пойменована, або адресована будь-яким іншим способом область комп'ютерної пам'яті, в якій зберігаються дані зазначеного типу. Ці дані, в ході виконання програми, можуть змінюватися необмежену кількість разів.
Можна сказати, що змінна – це контейнер (ящик) для зберігання змінюваних даних. Сюди можна покласти якесь значення (наприклад, дату, число, рядок і т.д.). Дані, які зберігає в собі змінна, називають значенням змінної. І в ході виконання програми, ці дані можна отримати і змінити.
Уявіть, що ви повісили на ящик ярлик (дали йому ім'я) «Іграшки» і поклали в нього плюшевого ведмедика. Виходить, що ви створили змінну – Іграшки. Значення змінної Іграшки буде – плюшевий ведмедик. У будь-який момент ви може дістати цього ведмедика з ящика, звернувшись до нього по імені «Іграшки» і покласти в ящик вже не ведмедика, а наприклад, зайчика. І тоді у вас буде змінна Іграшки зі значенням – зайчик.
Як ви вже зрозуміли, перш ніж починати роботу зі змінною, її потрібно оголосити.
Оголошення змінних в VBA
Правила присвоєння імені змінних в VBA:
- Ім'я змінної має бути унікальним (дві різні змінні не можуть мати одне й те саме ім'я).
- Максимальна довжина імені змінної не може перевищувати 255 символів.
- Першим символом в імені змінної повинна бути буква, після якої допускається використання цифр, або знака підкреслення «_».
- Не можна використовувати пробіл, крапку, знак оклику, а також символи @, #, $, %, &.
- Не можна використовувати зарезервовані (ключові) слова (слова, які підсвічуються синім кольором в режимі редактора коду).
При присвоєння імені змінної можна використовувати як рядкові, так і прописні букви в будь-якому поєднанні. наприклад, MySum і mysum компілятор VBA сприйме як одне й те саме ім'я. Якщо ви перший раз написали ім'я змінної MySum (перше входження), а другий раз написали mysum (друге входження), то редактор VBA автоматично виправить mysum на MySum.
Перш ніж використовувати змінну, її рекомендується оголосити. Тобто потрібно вказати компілятору, що потрібно створити змінну з такою назвою, в якій будуть зберігатися дані певного типу.
Якщо створити змінну без її попереднього оголошення, то вона буде мати тип Variant. У VBA цей тип змінної присвоюється за замовчуванням.
Якщо змінну створюють (використовують в операторі) без попереднього оголошення, то в такому випадку говорять, що змінна оголошена, не відкрито.
Щоб явно оголосити змінну використовують оператор Dim. Наприклад, оголосити змінну в VBA можна так:
Dim MyAge As Integer
У цьому рядку, MyAge – це ім'я змінної, а Integer – це присвоєний їй тип даних (Ціле число).
В одному рядку можна оголосити і кілька змінних. Робиться це через кому ось так:
Dim MyAge1 As Integer, MyAge2 As Integer, MyName As String
Зверніть увагу, що при оголошенні змінних в одному рядку, оператор Dim вказується один раз, а тип даних вказується для кожної змінної окремо.
Крім того, в одному операторі Dim дозволяється змішувати оголошення змінних різних типів: Intager, String, Date, Boolean і т.д.
Область видимості змінних в VBA
Змінну можна неодноразово використовувати тільки в тій частині програми, де вона доступна. У VBA передбачено 4 ключових слова для визначення області видимості змінних:
- Dim – використовується найбільш часто при оголошенні змінних в VBA. Якщо змінна оголошена як Dim в області оголошень модуля, то вона буде доступна для всіх процедур в цьому модулі, якщо в процедурі – то така змінна буде доступна тільки на час роботи цієї процедури.
- Private – при оголошенні змінних в стандартних модулях VBA працює точно так само, як і Dim.
- Public – така змінна буде доступна всім процедурам у всіх модулях даного проекту, якщо ви оголосили її в області оголошень модуля. Якщо ви оголосили її всередині процедури, вона буде вести себе як Dim.
- Static – такі змінні можна використовувати тільки всередині процедури. Їх видно тільки в тій процедурі, в якій вони оголошені. Змінні, оголошені з оператором Static, зберігають свої значення до тих пір, поки виконується код.
Якщо немає ніяких особливих вимог, то при оголошенні змінних в VBA найкраще обирати область видимості Dim.
Як присвоювати імена об'єктам в VBA правильно?
При створенні VBA програм, присвоювати імена об'єктам рекомендується за такими правилами:
- Ім'я змінної має починатися з префікса, записаного малими літерами. Префікс вказує, що саме буде зберігатися в цій змінній:
- str (або s) – String, символьне значення;
- fn (або f) – функція;
- sub – процедура;
- c (або всі букви імені заголовні) – константа;
- b – Boolean, логічне значення (True або False);
- d – дата;
- obj (або o) – посилання на об'єкт;
- n – числове значення;
- Імена функцій, методів і кожне слово в складеному слові має починатися з великої літери (Например, MsgBox ActiveDocument.Name).
- Константи прийнято записувати великими літерами, а між словами ставити символ підкреслення, наприклад COMPANY_NAME.