ягає в правильному розумінні об'єктної моделі У кожному окремому додатку. Слід відзначити. VBA всього лише управляє об'єктами, а у кожного програмного продукту (Excel. Word. Access. PowerPoint тощо) своя об'єкт-ная модель. Додатком можна керувати програмним чином тільки з помощьюоб'ектов, які представлені в цьому додатку.
Наприклад, в об'єктної моделі Excel представлено кілька потужних об'єктів аналізу даних, наприклад, робочі листи, діаграми, зведені таблиці, сценарії, а також численні математичні, фінансові, інженерні та загальні функції. З допомогою VBA ви можете працювати з цими об'єктами і розробляти автоматизовані процедури.
Порівняння VBA і XLM
До появи Excel 5 розробниками використовувався потужний (але складний для розуміння) мова макросів під назвою XLM. Пізніші версії Excel все ще виконують макроси XLM, але, починаючи з Excel 97, користувачі не мають можливості записувати макроси на мові XI.M. Для сучасних розробок використовується виключно VBA.
Основи VBA
Дії в VBA здійснюються в результаті виконання коду VBA. • Ви створюєте (або записуєте) програму VBA. яка зберігається в модулі VBA.
• Модуль VBA складається з процедур. p> Процедура, за суті, являє собою елемент комп'ютерної програми, що виконує певну дію. Нижче наведено приклад простої процедури під назвою Test: вона обчислює суму, а потім відображає результат у вікні повідомлень:
Sub Test ()
Sum = 1 + 1
MsgBox "Відповідь:" & Sum
End Sub
• Крім процедур Sub. в модулі VBA може використовуватися другий тип процедур - функции.
Процедура функції повертає одне значення (або масив). Функція може бути викликана з іншої процедури VBA або використовуватися у формулі робочого аркуша. Далі наведено приклад функції з назвою AddTwo:
Function AddTwo (argl, arg2)
AddTwo = argl + arg2
End Function
• VBA управляє об'єктами, які представлені запускає додатком (у. даному випадку Excel).
Excel дозволяє керувати більш, ніж ста класами об'єктів, включаючи робочу книгу, робочий лист, діапазон комірок робочого аркуша, діаграму і намальований прямокутник. У вашому розпорядженні знаходяться і інші об'єкти, з якими можна працювати в VBA. p> • Класи об'єктів організовані в ієрархічну структуру.
Об'єкти можуть бути контейнерами для інших об'єктів. Наприклад, Excel - це об'єкт під назвою Application, він містить інші об'єкти, наприклад. Workbook (Робоча книга). Об'єкт Workbook може складатися з інших об'єктів, наприклад. Worksheet (Робочий лист) і С h а г t (Діаграма). Об'єкт Worksheet також містить об'єкти, наприклад. Range (Діапазон), Р iv про t Т ab 1 е (Зведена таблиця) і т.д. Організацію таких об'єктів називають об'єктною моделлю Excel. p> Однакові об'єкти формують колекцію. Наприклад, колекція Worksheets складається з усіх робочих аркушів конкретної робочої книги, а колекція CommandBars - з усіх об'єктів CommandBar. Колекції - це об'єкти в собі. p> При посиланні на об'єкт, вкладений в інший об'єкт, положення в ієрархічній структурі об'єктної моделі задається за допомогою точки-роздільника. Наприклад, на робочу книгу з назвою Книга 1.xls в можна послатися наступним чином:
Application.Workbooks ("Кніга1.xls") Це ссипка на робочу книгу Кніга1.xls в колекції Workbooks. Колекція Workbooks знаходиться в об'єкті Application. Переходячи на наступний рівень, ви можете послатися на лист Лист1 в книзі Книга 1. xls:
Application.Workbooks ("Книга 1. Xls "). Worksheets ("Лист1") Перейдіть на один рівень нижче, після чого необхідно послатися на окрему клітинку:
При опущеною посиланням на об'єкт Excel за замовчуванням використовуються активні об'єкти. Якщо книга Лист1 - активна робоча книга, то попереднє посилання можна спростити:
Worksheets ("Лист1"). Range ("Al") Якщо ви знаєте, що лист Лист 1 - активний, то посилання можна спростити ще більше:
Range ("Al") <В
Об'єкти мають властивості.
Властивість можна вважати параметром та налаштуванням об'єкта. Наприклад, об'єкт діапазону має такі властивості, як Value (Значення) і Name (Ім'я), Об'єкт діаграми має такими властивостями, як Н as Т i 11 е (Заголовок) і Туре (Тип). Ви вправі використовувати VBA, щоб задати властивості об'єктів і їх змінити.
Властивості в програмному коді відділяються від назви об'єкта крапкою. Наприклад, ви можете послатися на значення в комірці А1 аркуша Лист1 наступним чином: Worksheets ( "Лист1"). Range ("Al"). Value
Робоча книга Excel є об'єктом, але вона також містить інші об'єкти, наприклад, робочі листи, діаграми, модулі VBA і т.д. Більше того, кожен об'єкт в робочій книзі може містити власні об'...