ВГОРУ

VBA-Урок 1. Що таке VBA. Основні поняття.

YouLibreCalc for Excel logo

У даному розділі ми розглянемо що таке VBA, оскільки саме на ньому і пишуться макроси.

Що таке VBA?

VBA - це вбудована мова програмування (розшифровується як Visual Basic for Applications), яка була розроблена компанією Microsoft. Дана мова не являється самостійною, а призначена лише для автоматизації процесів в пакеті MS Office. VBA широко використовується в Excel, а також в Access, Word та інших програмах пакету.

VBA являється простою мовою програмування, якій може навчитися будь-який бажаючий. Вивчивши її, ви зможе надавати команди Excel, що робити з колонками, рядками, значеннями в комірках, переміщати/додавати/сортувати аркуші, виводити заздалегідь запрограмовані повідомлення, писати свої формули та функції тощо. Суть мови заключається в оперуванні об'єктами.

Щоб працювати з VBA кодом, нам потрібен редактор (Visual Basic Editor), який вже є встановлений в Excel по замовчуванню. Ви можете відкрити його, натиснувши комбінацію клавіш "Alt+F11".

Об'єкти (Objects)

Давайте розберемо, що ж таке об'єкт в VBA.

VBA Об'єкт - це елемент, структурна частинка Excel, а саме: книга, аркуш, діапазон, комірка.

Об'єкти VBA мають ієрархію, тобто підпорядковуються один одному. Схематично структуру ієрархії в Excel можна зобразити наступним чином:

Найголовніший об'єкт - це Application, що відповідає самій програмі Excel. Далі іде Workbook (книга), Worksheet (аркуш), Range (діапазон, або окрема комірка).

Наприклад, щоб звернутися до комірки "A1" на аркуші, нам потрібно буде прописати наступний шлях з врахуванням ієрархії:

Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")

Таким чином, ми навчилися звертатися до найменшого об'єкту в Excel - комірки.

Колекції (Collections)

В свою чергу, VBA об'єкти належать до "колекцій".

VBA Колекція - це група (масив) об'єктів однакового класу (набір книг, аркушів тощо). Так, усі об'єкти Worksheet є елементами колекції Worksheets. В свою чергу, колекція теж являється об'єктом.

Одні й ті самі об'єкти можуть належати до кількох колекцій. Наприклад, об'єкти Worksheet також належать і до колекції Sheets. Колекція Sheets містить усі аркуші, які є в книзі - як графіки, які теж вважаються аркушами (Chart), так і аркуші з даними (Worksheet).

У VBA Excel існують наступні колекції:

  • Workbooks (містить об'єкти Workbook)
  • Worksheets (об'єкти Worksheet)
  • Sheets (об'єкти Worksheet та Chart)
  • Ranges (об'єкти Range)
  • ChartObjects (об'єкти ChartObject)
  • PivotTables (об'єкти PivotTable)
  • та багато інших...
  • Властивості (Properties)

    Кожен об'єкт в VBA має властивості. Наприклад, об'єкт Range має властивість Value або Formula.

    Worksheets("Sheet1").Range("A1").Value або Worksheets("Sheet1").Range("A1").Formula

    В даному прикладі, властивість відображає значення, яке введене в комірку або введену формулу.

    Також, через властивість Formula можна не тільки отримати формулу, але і записати її:

    MsgBox Range("A1").Formula - отримаємо повідомлення з формулою в комірці "А1";

    Range("B12").Formula = "=2+6*100" - вписуємо формулу "=2+6*100" в комірку "B12".

    Методи (Methods)

    Тепер давайте розглянемо, яким чином ми можемо керувати вмістом діапазону або комірки. Для цього в VBA існують, так-звані, методи (команди "що зробити"). При написанні коду, методи відділяються від об'єкта крапкою, наприклад:

    Range("A1").Select або Cells(1,1).Select

    Даний метод вказує вибрати (Select) комірку "A1".

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

    Selection.ClearContents

    Тут програма "бере" те, що ми віділили (Selection) та видаляє його вміст (ClearContents).