У даному розділі ми розглянемо що таке VBA, оскільки саме на ньому і пишуться макроси.
VBA - це вбудована мова програмування (розшифровується як Visual Basic for Applications), яка була розроблена компанією Microsoft. Дана мова не являється самостійною, а призначена лише для автоматизації процесів в пакеті MS Office. VBA широко використовується в Excel, а також в Access, Word та інших програмах пакету.
VBA являється простою мовою програмування, якій може навчитися будь-який бажаючий. Вивчивши її, ви зможе надавати команди Excel, що робити з колонками, рядками, значеннями в комірках, переміщати/додавати/сортувати аркуші, виводити заздалегідь запрограмовані повідомлення, писати свої формули та функції тощо. Суть мови заключається в оперуванні об'єктами.
Щоб працювати з VBA кодом, нам потрібен редактор (Visual Basic Editor), який вже є встановлений в Excel по замовчуванню. Ви можете відкрити його, натиснувши комбінацію клавіш "Alt+F11".
Давайте розберемо, що ж таке об'єкт в VBA.
VBA Об'єкт - це елемент, структурна частинка Excel, а саме: книга, аркуш, діапазон, комірка.
Об'єкти VBA мають ієрархію, тобто підпорядковуються один одному. Схематично структуру ієрархії в Excel можна зобразити наступним чином:
Найголовніший об'єкт - це Application, що відповідає самій програмі Excel. Далі іде Workbook (книга), Worksheet (аркуш), Range (діапазон, або окрема комірка).
Наприклад, щоб звернутися до комірки "A1" на аркуші, нам потрібно буде прописати наступний шлях з врахуванням ієрархії:
Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")
Таким чином, ми навчилися звертатися до найменшого об'єкту в Excel - комірки.
В свою чергу, VBA об'єкти належать до "колекцій".
VBA Колекція - це група (масив) об'єктів однакового класу (набір книг, аркушів тощо). Так, усі об'єкти Worksheet є елементами колекції Worksheets. В свою чергу, колекція теж являється об'єктом.
Одні й ті самі об'єкти можуть належати до кількох колекцій. Наприклад, об'єкти Worksheet також належать і до колекції Sheets. Колекція Sheets містить усі аркуші, які є в книзі - як графіки, які теж вважаються аркушами (Chart), так і аркуші з даними (Worksheet).
У VBA Excel існують наступні колекції:
Кожен об'єкт в 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".
Тепер давайте розглянемо, яким чином ми можемо керувати вмістом діапазону або комірки. Для цього в VBA існують, так-звані, методи (команди "що зробити"). При написанні коду, методи відділяються від об'єкта крапкою, наприклад:
Range("A1").Select або Cells(1,1).Select
Даний метод вказує вибрати (Select) комірку "A1".
Далі, давайте, видалимо значення в даній комірці. Для цього напишемо наступний код.
Selection.ClearContents
Тут програма "бере" те, що ми віділили (Selection) та видаляє його вміст (ClearContents).