Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2а VB Лекція. Обєкти і класи.doc
Скачиваний:
1
Добавлен:
08.09.2019
Размер:
208.9 Кб
Скачать

Посилання на об'єкти

Щоб дістати доступ до об'єкту, потрібно мати посилання, яке на нього указує. Посилання - це ім'я в кодах програми, вказуюче на даний об'єкт. В деяких випадках об'єкт вже існує, тому програмі необхідно лише одержати посилання на цей об'єкт.

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

Робота з колекціями

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

Наприклад, робоча книга Excel може містити декілька листів. Їх управління організоване таким чином:

• Робоча книга представлена об'єктом Workbook.

• Об'єкт Workbook містить колекцію Sheets.

• Колекція Sheets містить по одному об'єкту Sheet для кожного листа даної робочої книги.

Чому колекція, що містить робочі листи, називається Sheets, а не Worksheets? Річ у тому, що в Excel представлено два типу листів.

Листи першого типа (робочі листи - worksheets) можуть містити в собі як дані, організовані в стовпці і рядки, так і діаграми.

Листи другого типа (листи діаграм – chartsheets) включають тільки діаграми.

Таким чином, колекція Sheets містить об'єкти класу Sheet, кожний з яких може бути листом першого або другого типа. Якщо ви плануєте працювати тільки з робочими листами або тільки з листами діаграм, скористайтеся властивістю Worksheets або властивістю Charts, відповідно.

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

колекція Sheets містить об'єкти класу Sheet, колекція Windows - об'єкти класу Window і т.д.

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

Передбачено два способи, за допомогою яких можна звернутися до потрібного об'єкту колекції. Слід або вказати порядковий номер цього об'єкту в колекції, або використовувати унікальний ключ даного об'єкту. Даний :ключ залежить від того, які об'єкти містяться в колекції. Як правило, він є фрагментом інформації, по якому можна ідентифікувати необхідний об'єкт. Наприклад, в колекції Sheets таким ключем є назва робочого листа. Таким чином, запис

Sheets (1)

Означає перший лист поточної робочої книги, тоді як запис

Sheets ("Об'емиПродаж ")

посилається на лист з назвою "Об'емиПродаж" .

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

Посилання на об'єкт, що належить колекції, можна використовувати двома способами. Ви маєте можливість звернутися до елементів колекції безпосередньо. Застосування такого способу продемонстроване на прикладі наступного рядка, де виклик методу Calculate супроводжується перерахунком всіх формул вказаного робочого листа:

Shееts("Об'емиПродаж").Calculate

Можна також привласнити посилання на елемент колекції якої-небудь змінної і потім використовувати цю змінну для звернення до даного елементу:

Set МойЛист = Sheets ("ОбъемиПродаж")

У даному прикладі мається на увазі, що змінна МойЛист була оголошена з вказівкою типу даних, який дозволяє зберігати посилання на робочі листи. Зверніть увагу на використання ключового слова Set, яке обов'язкове, якщо змінній привласнюється посилання на об'єкт. В результаті змінна МойЛист тепер посилається на робочий лист, що має назву "ОбъемиПродаж", і може бути використана для звернення до властивостей і методів цього листа:

МойЛист.Саlсulаtе

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

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

ИмяКоллекции.Аdd(аргументи)

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

При роботі з колекціями досить корисним інструментом є оператор For Each In. З його допомогою можна створити цикл для проходження по всіх елементах колекції. Синтаксис застосування цього оператора виглядає таким чином:

For Each Елемент In Колекція

[Exit For] .....

Next Елемент

Елемент - це змінна, яка повинна бути оголошена з вказівкою типу даних, що дозволяє зберігати посилання на елементи колекції.

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