Ми вже знаємо, що VBA (Visual Basic for Applications) – це об'єктно-орієнтована мова програмування. Тобто, в основу програмування на VBA покладено таке поняття як об'єкт. Саме через об'єкт ми можемо отримати доступ до функціональних можливостей програми, в якій відбувається розробка програми: Word, Excel, PowerPoint, Access та ін.
Крім того, при розробці програми є можливість отримати доступ до об'єктів інших VBA-додатків і навіть створити свої власні об'єкти.
Що таке об'єкт в VBA?
Об'єкт – це будь-яка іменована одиниця, яка поєднує в собі дані та програмний код, який використовує ці дані та впливає на них. У такому випадку прийнято говорити, що об'єкт інкапсулює дані та пов'язаний з ними програмний код.
У кожному VBA-додатку є свій унікальний набір об'єктів, які мають свої власні властивості та методи.
Якщо говорити про VBA в Excel, то тут об'єктом може бути сама програма Excel (Application), робоча книга (Workbook), аркуші (Worksheets), комірки (Cells), діаграми, екранна форма, кнопка і т.д. Кнопки панелі інструментів та пункти меню також є об'єктами.
Властивості та методи об'єкта
Властивості являють собою характеристики об'єкта, такі як його колір (наприклад, колір заливки комірки), або розмір (наприклад, ширина і висота комірки) і т.д.
Є властивості, які доступні для читання і запису, а є властивості доступні лише для читання. Тобто можна або отримати поточне значення властивості, або встановити нове значення властивості.
Методи представляють дії, які можна виконати з об'єктом, такі як зміна його властивостей чи виконання певних операцій. Наприклад, за допомогою методу Select можна виділити та зробити активною комірку для подальшої зміни її властивостей (розміру, кольору тощо).
Виходить, що кожна властивість має свої методи.
Наприклад, коміка А1 на аркуші книги Excel буде представлена об'єктом. Цей об'єкт може мати властивості, такі як Interior.Color (колір заливки), або Value (значення) і методи, такі як Select (активація комірки), Copy (копіювання), або Clear (очистити).
Використовуючи ці властивості та методи, ми можемо змінити колір заливки активної комірки. Наприклад, зробити її активною. Також можна отримати індексне значення кольору заливки комірки та очистити комірку.
Приклад зміни властивостей об'єкта
Sub myObjColor1()
ActiveCell.Interior.Color = vbYellow
End Sub
У цьому коді:
- ActiveCell – це активна комірка, яка є об'єктом.
- Interior – це об'єкт, який репрезентує внутрішню область зазначеного об'єкта.
- Color – це властивість, яка задає колір для об'єкта Interior.
Приклад отримання значення властивості об'єкта
Sub myObjColor2()
Dim n As Integer
n = ActiveCell.Interior.ColorIndex
MsgBox (n)
End Sub
У цьому коді:
- n – змінна числового типу в яку ми будемо записувати значення властивості ColorIndex.
- ActiveCell – це активна комірка, яка є об'єктом.
- Interior – це об'єкт, який представляє внутрішню область вказаного об'єкта.
- ColorIndex – ця властивість встановлює, або повертає колір заливки комірки за допомогою числового коду від 0 до 56.
Приклад використання методів об'єкту
Sub myObjColor2()
ActiveCell.Clear
End Sub
У цьому коді:
- ActiveCels – це об'єкт (активна комірка).
- Clear – це метод, який використовується для того, щоб видалити вміст комірки.
Ще трохи про об'єкти їх властивості та методи
Сам по собі об'єкт не становить великого інтересу для програми. Набагато важливіше те, які властивості має цей об'єкт і які дії можна здійснювати над ним.
Дії, які можна здійснювати з об'єктом, визначаються набором його методів. А характеристики конкретного об'єкта визначають його властивості.
Керувати характеристиками конкретного об'єкта можна лише за допомогою його методів, які надають доступ до властивостей цього об'єкта.
Будь-які властивості, як і змінні, зберігають дані певного типу: числової, рядковий, Boolean тощо.
Важливо!
Значення властивості об'єкта краще зберегти у звичайній змінній, якщо ви плануєте багаторазово використовувати у програмі одне й те саме значення певної властивості цього об'єкта. Це прискорить роботу вашої програми, тому що VBA отримує значення звичайної змінної значно швидше, ніж значення властивості об'єкта.
