Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О'єкти_Excel.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
216.34 Кб
Скачать

1. Об’єктна модель Excel

Меню, панель інструментів, робоча книга, робочий аркуш, комірка, діапазон комірок, діаграма, шрифт тощо – все це об’єкти. Сукупність об’єктів Excel відкритих для використання іншими застосуваннями Microsoft Office називається об’єктною моделлю Excel.

Керування об’єктами здійснюється за допомогою властивостей і методів.

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

Об’єкт. Властивість = значення

де, Об’єкт – ім’я об’єкта, Властивість – відповідне ім’я властивості, якій призначається значення. Ім’я об’єкта відокремлюється від імені властивості крапкою. Наприклад, для того щоб надати властивість Formula об’єкту Range(“D4”) (іншими словами, щоб помістити в комірку D4 формулу, наприклад, =А2*С8), використовують наступну інструкцію для об’єкта Range: Range(“D4”).Formula =”=А2*С8.

Для того щоб отримати значення властивості об’єкта, використовують такий запис: Ім’яЗмінної= Об’єкт.Властивість. Наприклад, для надання змінній Х властивості Value об’єкта Range(“A7”) (тобто, для фіксації у змінній значення комірки Range(“A7”)) використовують таку інструкцію: Х = Range(“A7”). Value

Метод – це дія, яку повинен виконати об’єкт (відкрити, зберегти, додати, перемістити тощо). Наприклад, метод Clear до об’єкта Range(“D4”) вилучає вміст комірки: Range("D4").Clear.

У об’єктній моделі Excel досить часто використовуються поняття колекції – група подібних об’єктів. Основою властивістю колекції є можливість додавати нові елементи до колекції. Так, до об’єкта Excel можна додавати нові книги, до нових книг можна додавати нові аркуші тощо. Тому, книга1 (Workbook) це елемент колекції книг (Workbooks); аркуш1 (Sheet) – це елемент колекції сторінок (Sheets). У той же час комірки робочого аркуша (Range) не можуть бути колекцією, тому що кількість комірок в аркуші визначено фірмою Microsoft і їх значення не може бути змінена користувачем.

1.1. Об’єкт Application

На вершині об’єктної моделі знаходиться об’єкт Application (сама програма Excel), всі інші об’єкти моделі є дочірніми по відношенню до Application. Концепція підпорядкування дає змогу утворювати посилання на об’єкти в кодах VBA. Синтаксис посилання на об’єкти такий: об’єкти вказуються в порядку підпорядкування; ім’я одного об’єкта від попереднього відокремлюється крапкою; аргумент об’єкта береться в лапки і від об’єкта відокремлюється круглими дужками. Наприклад, щоб звернутись до комірки А5 на робочому аркуші Лист1 робочої книги Книга1, треба використати таке повне посилання: Application. Workbooks (“Книга1”). Worksheets (“Лист1”).Range(“A5”). Повне посилання на об’єкт вимагається не завжди. У більшості випадків об’єкт Application можна не згадувати, тоді посилання на комірку А5 може бути такого змісту: Workbooks ("Книга1"). Worksheets ("Лист1"). Range("A5"), а якщо аркуш Лист1 є поточним, тоді можна використати “урізане” посилання на комірку – Range("A5"). Практичний досвід програмування підкаже вам, у яких випадках можна використовувати “урізаний” опис об’єктів.

Об’єкт Application має велику кількість властивостей і методів. Наведемо декілька найчастіше вживаних властивостей (табл. 1) і методів (табл. 2) об’єкту Application.

Таблиця 1

Властивості об’єкту Application

Властивості

Опис і синтаксис запису властивості

Caption

Дає змогу отримати або задати текст, який відображається у рядку заголовка головного меню Excel. Приклади:

А= Application. Caption – змінній А пересилається назва заголовка головного меню; Application. Caption = “Проба” – вивід вказаного тексту в рядок заголовка головного вікна Excel; Application. Caption = Empty – відновлення стандартної назви вікна “Microsoft Excel

DisplayFormulaBar

Вивід рядка формул у вікно Excel. Приклади:

Application. DisplayFormulaBar = True – вивід рядка формул у вікно Excel; Application. DisplayFormulaBar = False – ліквідація рядка формул у вікні Excel.

DisplayStatusBar

Вивід/ліквідація рядка стану у вікні Excel. Приклади:

Application. DisplayStatusBar = True – вивід рядка стану;

Application. DisplayStatusBar = False – ліквідація рядка стану.

StatusBar

Вивід/ліквідація рядка стану Excel і введення тексту дії в рядок стану. Приклади:

Application. DisplayStatusBar = True – вивід рядка стану у вікно;

Application. StatusBar = “Вводимо дані..” – вивід дії в рядок стану; Application. DisplayStatusBar = False – вилучення рядка стану.

ActiveWorkbook

Звернення до активної робочої книги. Приклади:

x = Application.ActiveWorkbook.Name – ім’я активної робочої книги направляється до змінної х;

MsgBox x – вивід на екран імені активної книги;

Application.ActiveWorkbook.Close = Закриття активної книги.

ActiveSheet

Звернення до активного аркуша робочої книги. Приклади:

x = Application.ActiveSheet.Name – ім’я активного аркуша направляється до змінної х;

MsgBox x – вивід на екран імені активного аркуша

ActiveCell

Звернення до комірки, в якій знаходиться курсор. Приклади:

x = Application.ActiveCell.Address – фіксація адреси активної клітинки у змінній х;

MsgBox x – на екран виводиться адреса активної клітинки.

Application.ActiveCell.Font.Bold =True – для активної клітинки встановлюється напівжирний шрифт;

Application.ActiveCell.Value=”Разом” – введення до активної клітинки тексту Разом;

Application.ActiveCell.Formula=”=A5*C3” – введення до активної клітинки формули.

OperatingSystem

Визначення типу операційної системи. Приклад:

MsgBox Application. OperatingSystem – вивід на екран імені операційної системи, з якою працює додаток.

Таблиця 2

Методи об’єкта Application:

Методи

Опис і синтаксис запису методу

Run

Запуск на виконання процедури або макросу. Приклад:

Application. Run Macro:=”Звіт” – запуск процедури Звіт.

Quit

Закриття додатку. Приклад:

Application. Quit – закриття Excel.

OnTime

Призначення виконання процедури на певний час. Приклад: команда Application.OnTime Now + TimeValue("00:00:30"), "DialVikno", яку можна включити до складу будь-якої процедури, демонструє процес запуска на виконання процедури DialVikno через 30 сек. від поточного часу.

Wait

Тимчасове призупинення роботи застосування: Application. Wait”13:10:00”– згідно наведеної команди робота застосування відновиться о 13 год. 10 хв.

Роль об’єкта Application не обмежується визначенням параметрів Excel і використанням методів. Об’єкт Application включає в себе стандартні функції Excel і надає можливість викликати їх до роботи. Приклад виклику до роботи стандартної функції Sum() наведений у лістингу 1.

Лістинг 1. Використання стандартної функції Excel Sum для обрахування значень клітинок D4:D8 аркуша1 і виводу результату у клітинку D9

Public Sub Vucor()

ActiveCell = Application.Sum(Worksheets(1).Range("D4:D8"))

Range("D9").Select ‘ Виділення клітинки D9

End Sub

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

1.2. Об’єкт Workbook

Кожна відкрита робоча книга Excel представляється об’єктом Workbook, що входить до колекції Workbooks об’єкта Application. Основні властивості і методи об’єкта Workbook наведені в табл. 3 і 4.

Таблиця 3

Основні властивості об’єкту Workbook

Властивості

Синтаксис запису властивості і характеристика дії

ActiveSheet

Звернення до аркуша активної книги (MsgBox ActiveSheet.Name – на екран виводиться ім’я активного аркуша);

Count

Підраховує кількість об’єктів сімейства Workbooks. Приклад:

MsgBox Workbooks.Count – на екран виводиться повідомлення про кількість відкритих книг.

Worksheets

Звернення до колекції аркушів (Sheets) активної книги. Приклад: MsgBox Worksheets.Count – вивід на екран кількості аркушів в поточній книзі.

CreateBackup

Створення резервної книги, якщо властивості присвоїти значення True, тоді під час збереження робочої книги створюється її резервна копія.

Таблиця 4

Методи об’єкту Workbook

Методи

Синтаксис запису метода і характеристика дії

Activate

Робить відкриту книгу активною: Workbooks("Poscuk.xls"). Activate ‘З попередньо відкритих декількох книг активною стає книга Poscuk.xls

Add

Дозволяє створити нову робочу книгу:

Workbooks.Add – створення нової книги

Save

Зберегти робочу книгу

SaveAs

Зберегти як

Close

Закрити робочу книгу

Open

Відкрити існуючу робочу книгу:

Application.Workbooks.Open ("d:\Str\Poscuk.xls") ‘Відкриття книги з іменем Poscuk.xls, що збережена в папці Str на диску D

PrintPreview

Відображення робочої книги в режимі попереднього перегляду

На лістингу 2 наведена процедура використання методів об’єкта Workbooks:

Лістинг 2. Приклад використання методів об’єкта Workbooks

Public Sub Створення()

Dim Book As Workbook оголошення змінної як об’єкт Workbook

Set Book = Workbooks.Add ‘Створення нової книги і оголошення її Book

Book.SaveAs "Приклад" ‘ Збереження книги з ім’ям Приклад

MsgBox ("Створена книга з ім'ям: ") & Book.Name ‘ Вивід на екран імені

збереженої книги

Book.Close ‘Закриття робочої книги

End Sub

1.3. Об’єкт WorkSheet

На робочому аркуші, як правило, зосереджуються дані, що опрацьовуються. Об’єкту WorkSheet (аркуш) притаманний ряд властивостей і методів, що забезпечують можливість модіфікувати дані робочого аркуша і керувати їх відображенням (табл. 5, 6).

Таблиця 5

Основні властивості об’єкта WorkSheet:

Властивості

Синтаксис запису властивості і характеристика дії

Visible

Присутність/відсутність робочого аркуша на екрані, властивість може приймати значення True, False. Приклади: Worksheets(2). Visible = False – вилучення з екрана аркуша 2; Worksheets(2). Visible = True – виведення на екран аркуша 2

Cells

Звернення до комірок робочого аркуша. Властивість Cells може використовуватися без аргументів (звернення до всіх комірок діапазона) і з аргументами (звернення до конкретних комірок, для такого звернення використовують наступний синтаксис Cells(Row, Col), перший параметр визначає рядок електронної таблиці, другий – стовпець).Приклади: Cells.Font.Name = "Arial" ‘Встановлення шрифту Arial для всіх комірок аркуша; Cells (3, 5).Font.Size = 25 ‘Встановлення розміру шрифту висотою 25 пунктів для комірки Е3 (перший аргумент вказує на номер рядка аркуша, другий – стовпця)

Columns

Звернення до стовпців поточного робочого аркуша. Приклад: Selection.Columns.count – підрахунок кількості виділених стовпців таблиці;

Name

Дає змогу отримати або змінити ім’я робочого аркуша Приклад: Worksheet.Name = Format (Date, "d mmmm yyyy" – аркушу книги надається ім’я поточної дати.

Range

Звернення до визначеної комірки, діапазону комірок робочого аркуша. Приклади: Range ("C21").Select – виділення комірки С21; Range ("A21:C10"). Select – виділення інтервалу комірок.

UsedRange

Визначення діапазону комірок, в яких містяться дані. Приклад: Worksheets(1).UsedRange.Clear – вилучення даних з першого аркуша активної книги.

Union

Об’єднання діапазонів комірок в одне ціле. Приклад: Union(Range(“A5:C9”), Range(“D1:F12”)).Select – виділення двох блоків комірок активного аркуша поточної книги

Таблиця 6

Методи об’єкта WorkSheet:

Методи

Опис і синтаксис запису методу

Activate

Активізація робочого аркуша. Приклад: WorkSheets(1). Activate – активізація робочого аркуша1 поточної робочої книги.

Add

Додавання робочого аркуша до активної робочої книги. Приклад: ActivateWorkbook.WorkSheets.Add – вставка нового аркуша перед активним аркушем активної робочої книги.

Delete

Вилучення робочого аркуша. Приклад: WorkSheets(1). Delete – вилучення першого робочого аркуша з активної книги.

Copy

Копіювання робочого аркуша

1.4. Об’єкт Range

Певні дії, що інструкції VBA, відносяться до конкретної частини робочого аркуша. Зрозуміло, що в подібних випадках виникає необхідність у використанні засобів, які надають можливість ідентифікувати необхідні фрагменти об’єкту: окрему комірку, діапазон комірок, робочий аркуш Excel в цілому. Для виконання таких дій у VBA передбачений об’єкт Range. Синтаксис звернення до об’єкту Range може мати такий вид: Посилання. Range (“комірка”). властивість/метод

У даному випадку аргумент Посилання являє собою звернення до робочого аркуша. Якщо звернення здійснюється до активного робочого аркуша, тоді об’єктом посилання є ActiveSheet. Якщо звернення здійснюється до неактивного робочого аркуша, тоді об’єктом посилання є шлях до нього, в шлях включається ім’я книги, до якої входить аркуш, ім’я аркуша. Аргумент “комірка” визначає, які комірки будуть включені до діапазону: звернення до конкретної комірки позначається буквою стовпця і номером рядка – “F9”; звернення до діапазону комірок позначається через дві крапки – “А8:С12”. Аргумент властивість/метод визначає яка властивість, або який метод застосовується до об’єкта Range. Перелік основних властивостей і методів наведений у табл. 7, 8.

Таблиця 7

Основні властивості об’єкта Range.

Властивості

Синтаксис запису властивості і характеристика дії

Value

Визначає роботу комірки з даними. Приклад1: х=Range(“B4”). Value – змінній х присвоюється значення з комірки В4; приклад2; Range(“B4”). Value=372 – у комірці В4 фіксується число 372;

приклад 3: ActiveSheet.Range(“C21”).Value = “Підсумок” – у комірці С21 фіксується текст Підсумок.

Formula

Визначає роботу комірки з формулами. Приклад: Range(“B4”). Formula = ”=C9*A5 ” – у комірку В4 вводиться формула =C9*A5

FormulaArray

Надання комірці (коміркам) властивості на сприйняття формули масиву. Приклад: Range(“D4”). FormulaArray = ”=Sum(B3:B8* C4:C9) ” – у комірку D4 вводиться формула масиву ”=Sum(B3:B8* C4:C9)

Name

Надає можливість надавати комірці або діапазону Formula комірок імена: Range(“B3:В14”). Name = ”Кількість”

Count

Визначити кількість об’єктів в наборі:

Х = Range(“B3:В14”).Rows.Count – змінній Х присвоюється значення кількості рядків у діапазоні B3:В14

CurrentRegion

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

x = Range("C2").CurrentRegion.Rows.Count

y = Range("C2").CurrentRegion.Columns.Count

MsgBox "Таблиця займає " & x & " рядків" _

& " i " & y & " стовпців"

Приклад 2: Виконати операцію “копіювання і вставка” таблиці, верхній лівий кут якої займає клітинку С2. Результат копіювання вставити в поточний аркуш починаючи з клітинки F7:

Range("C2").CurrentRegion.Select ‘ Виділення таблиці

Selection.Copy ‘Копіювання виділеного об’єкта

Range("F7").Select ‘ Переміщення курсова в клітинку F7

ActiveSheet.Paste ‘ Вставка діапазону з буфера

Application.CutCopyMode = False ‘Деактивація операції копіювання/ вставка

Властивість використовують також для отримання діапазону, до якого входить заголовок таблиці і всі раніше введені дані (іншими словами властивість використовують для того, щоб знайти перший пустий рядок у таблиці з даними з метою поповнення таблиці новими даними)

Cells

Звернення до комірок робочого аркуша, синтаксис: Cells(№ рядка, № стовпця). Властивість Cells може використовуватися: по-перше, як альтернативний спосіб роботи з коміркою, наприклад, звернення до комірки В3 як об’єкта може бути описано так Range (“B3”) або Cells(3,2); по-друге, як властивість об’єкта Range – звернення до тієї ж комірки В3 може бути записано і так Range(Cells (3,2)), а звернення до інтервалу комірок A2:C5 можна записати таким чином: Range(Cells(2, 1), Cells(5, 3)).Select.

Спосіб адресації комірок визначається користувачем і аргументується, в окремих випадках, зручністю адресації.

Якщо властивість Cells використовується без аргументів, тоді вона посилається на всі комірки діапазону (Range.Cells) або робочого аркуша (властивість WorkSheet.Cells). Тому наступну інструкцію можна використовувати, наприклад, для зміни фонового кольору комірок. Наприклад, діапазону Range(“A1:B8”) слід надати світло ліловий фон: Range(“A1:B8”). Cells.Interior. Color = RGB(220,220,255). Аналогічно, наведені нижче інструкції змінюють шрифт і кегль всіх комірок вказаного робочого аркуша: Worksheets(1).Cells.Font.Name = "Arial"

Worksheets(1).Cells.Font.Size = 13

Font

Надає об’єкту властивість на визначення шрифту. За допомогою властивості Font можна визначати ім’я шрифту (Name), стиль (FontStyle), розмір (Size), колір (ColorIndex) тощо. Приклад встановлення для діапазону комірок А1:А15 шрифту Verdana, висотою шрифту 15 пунктів, напівжирного, червоного коліру:

With Range("A1:F15").Font

.Name = "Verdana"

.Size = 15

.FontStyle = "Bold"

.ColorIndex = 3

End With

Таблиця 8

Методи об’єкту Range

Методи

Синтаксис запису методу і характеристика дії

Activate

Активізація (виділення) діапазону комірок. Приклади: Range("A1").Activate – активізація комірки А1; Range("A3:B7").Activate – активізація (виділення) блоку комірок.

Select

Виділення діапазону комірок. Метод фактично аналог методу Activate

Clear

Очистка змісту діапазону комірок: Range("A3:B7"). Clear

Address

Визначає адресу комірки (блоку комірок), метод може мати свої аргументи – MsgBox ActiveCell.Address – на екрані відображається вікно з поточною адресою курсору

Copy, Delete, Cut

Копіювання, вилучення, копіювання з вилученням вмісту комірки (діапазону комірок).

Columns, Rows

Визначають відповідно стовпці і рядки діапазону. У наступному прикладі змінним X i Y надаються значення, що дорівнюють кількості стовпців і рядків у виділеному діапазоні: X=Selection.Columns.Count

Y= Selection.Rows.Count

Offset

Переміщення курсору відносно його поточного розташування, що специфіковане в аргументах метода: синтаксис – Offset(x,y), де: Х – ціле число, що вказує зміщення по рядкам; Y – ціле число, що вказує зміщення по стовпцям. Якщо ці аргументи додатні, тоді зміщення здійснюється вниз і праворуч.При від’ємних значеннях – вверх і вліво. Приклади: ActiveCell.Offset(-1, -2).Activate – переміщення табличного курсору відносно його поточного значення на один рядок вверх і на два стовпця вліво і активізація нової адреси; ActiveCell.Offset(1,- 2).Activate – переміщення табличного курсору відносно його поточного значення на один рядок вниз і на два стовпця вліво і активізація нової адреси.