Об'єкти в програмах на vba і об'єктні змінні

Код VBA здебільшого заснований на використанні об'єктів. Наприклад, презентація PowerPoint, робоча книга Excel або діапазон комірок є об'єктами. Об'єкти - це елементи, якими можна управляти. Об'єкти Microsoft Office утворюють ієрархії, вони більш детально розглядаються нижче, при вивченні конкретних програм. Всі об'єкти задокументовані у вбудованій довідці VBA.

Кожен об'єкт має властивості (атрибути, що характеризують його) і методи (операції, які можна виконувати над даним об'єктом). При зверненні до конкретної властивості або методу об'єкта необхідно вказати об'єкт і потрібне властивість або метод. Загальний синтаксис, який використовується при маніпулюванні об'єктами наступний:

Об'єкт. Властивість або Об'єкт. метод

В одному рядку коду можна виконати тільки один метод, викликавши його:

Для виклику методу необхідно вказати об'єкт і метод. Крім того, більшість методів мають набір аргументів, які дозволяють виконати додаткову настройку. Аргументи можуть бути обов'язковими і необов'язковими. Якщо при виклику методу необов'язкові аргументи не передаються, вони приймають значення за замовчуванням. Аргументи при виклику методу можуть передаватися по імені і відповідно до позиції, як і аргументи процедур.

Один рядок коду може містити оператор присвоювання, який встановлює властивість об'єкта (задає значення властивості об'єкта, записаного в лівій частині оператора присвоювання, рівним значенню виразу, записаного в правій частині оператора присвоювання):

Об'єкт. Властивість = Вираз

Значення властивості об'єкта може бути отримано і використано при обчисленні значення виразу.

Деякі об'єкти мають властивість «за замовчуванням» - властивість, до якого відбувається звернення, якщо в операторі вказано тільки об'єкт.

При записи повного імені об'єкта в ньому перераховуються імена всіх об'єктів, що знаходяться на попередніх рівнях ієрархії (наприклад, для вказівки діапазону комірок на робочому листі книги Excel потрібно вказати ім'я робочої книги, ім'я робочого листа і ім'я або координати діапазону). Ці імена записуються через крапку.

Об'єктні змінні можуть зберігати посилання на об'єкти. Їх доцільно використовувати, якщо звернення до об'єкту проводиться багаторазово. Такі змінні створюються в два етапи: спочатку її потрібно оголосити, а потім встановити значення. Одну і ту ж змінну можна використовувати для посилання на різні об'єкти. Але це знижує ефективність програми, так як при використанні типу даних Object відбувається пізніше (під час виконання програми) зв'язування. Раннє зв'язування відбувається під час компіляції. Для його реалізації потрібно оголошувати змінні, вказуючи в якості типу конкретний клас об'єкта (наприклад, Range або Presentation), тобто класи для об'єктів грають ту ж роль, що і типи для змінних.

У програмах на VBA можна працювати як з одиничними об'єктами, так і з родинами об'єктів. Сімейство визначається як група подібних об'єктів. Сімейство містить впорядкована множина елементів (наприклад, безліч елементів управління даної форми або безліч сценаріїв).

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

Родині належать не унікальні об'єкти, а об'єкти, які можуть існувати в декількох екземплярах в кожному контексті. Хоча сімейство містить групи об'єктів, саме сімейство теж є об'єктом. Сімейство також має пов'язані з ним властивості і методи. VBA надає три основні методи для роботи з родинами: Add (додати елемент в сімейство), Remove (видалити елемент з сімейства), Count (кількість елементів в сімействі).

Якщо для управління об'єктами Microsoft Access використовується інший додаток, то, як правило, об'єктні змінні описуються з найбільш підходящим для них типом. Можливо також використання ключового слова New для автоматичного створення нового екземпляра об'єкта. Однак необхідно вказати, що це об'єкт Microsoft Access. Наприклад, якщо описується об'єктна змінна, що представляє форму Microsoft Access всередині Microsoft Visual Basic, необхідно розрізняти об'єкт Form Microsoft Access і об'єкт Form Visual Basic. Ім'я бібліотеки типів включається в опис змінної, як показано в наступному прикладі:

Set appAccess = CreateObject ( "Access.Application")

Синтаксис, підтримуваний конкретним додатком, описаний в документації програми.

Для підключення посилань можна використовувати команду меню Сервіс.

Схожі статті