Поняття макроса і макрорекордера

При роботі з прикладними програмами користувачеві часто доводиться повторювати одну і ту ж послідовність дій для вирішення різних задач. Для полегшення такої рутинної роботи в багатьох програмних продуктах від різних виробників передбачена можливість створення та автоматичного виконання тієї чи іншої послідовності команд. Таку послідовність називають макрокомандою, або коротко макросом (macro). Така можливість передбачена і в поширених офісних пакетах, таких як Microsoft Office та OpenOffice (LibreOffice, StarOffice).

Макрос – деяка послідовність дій користувача прикладної програми, що записана у вигляді окремої процедури, яка може виконуватися автоматично як одна команда. Для створення макросів часто використовують спеціальну програму, яка автоматично записує дії користувача в макрос, її називають макрорекордером. Згадані вище офісні пакети мають вбудовані макрорекордери. Наприклад, щоб записати макрос, в Microsoft Word потрібно виконати команду Tools => Macro => Record New Macros (для англомовного інтерфейсу).

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

Для того, щоб дозволити користувачеві редагувати макроси без повторного запису та зробити макроси більш гнучкими, у сучасних версіях офісних програм вмонтовано редактор мови програмування Basic. Для редагування макросів програми пакету Microsoft Office використовують мову VBA (Visual Basic for Applications), а у програмах пакету OpenOffice.org – дещо інший варіант цієї мови, який називають OpenOffice.org Basic, або скорочено OOo Basic.

Серед користувачів, знайомих з обидвома згаданими варіантами офісного програмування поширена думка про те, що створення макросів на мові OOo Basic є значно важчим, ніж написання VBA-макросів. Насамперед, це зумовлено більш складною об’єктною структурою OpenOffice порівняно з об’єктною ієрархією додатків MS Office, представленою у VBA. Зокрема, така особливість проявляється при використанні автоматичного запису макросів: якщо написання VBA-макросів часто зводиться до редагування та модифікації макросів, записаних макрорекордером, то в OpenOffice макроси створюють, в основному за рахунок написання коду у редакторі OOo Basic.