Візуальні елементи та діалог користувач-комп’ютер

Сьогодні більшість користувачів ПК, мабудь, не можуть собі уявити комп’ютерну програму, в якій не можна виконати будь-яку дію, натиснувши клавішу миші над тим, чи іншим графічним елементом. Графічний інтерфейс (GUI), завдяки своїй зручності, став головним способом реалізації діалогу між користувачем та програмою. Дії, які може виконувати програма, зібрані у вигляді набору пунктів графічного меню вікна програми, для часто використовуваних команд виводяться візуальні кнопки на так званих “панелях інструментів”, параметри виконання команд задаються за допомогою графічних елементів керування у вікнах діалогу і т.д.

Макроси, як засіб вдосконалення функціональних можливостей програми, очевидно, можуть використовувати у своїй роботі ті чи інші візуальні елементи її графічного інтерфейсу: пункти меню та кнопки панелей інструментів для запуску процедур, діалогові вікна для задання параметрів їх роботи. Цікавою є відмінність у підходах до використання згаданих елементів макросами на VBA (Microsoft Office) та макросами OpenOffice.org Basic.

Команди меню та кнопки панелей інструментів призначені для виконання команд програми. Ними можна скористатися для запуску макросів, для цього до панелі інструментів, чи в розділ меню програми можна додати кнопку для запуску створеного макроса, використовуючи вікно налаштувань програми. VBA-макроси, крім цього, мають можливість за допомогою відповдіних об’єктів керувати меню та панелями інструментів у вікнах програм MS Office (створювати, відкривати, закривати, і т.д.), в чому, очевидно, немає необхідності.

Схожа ситуація з створенням та використанням вікон діалогу, основне призначення яких — зручний ввід довільної кількості різнотипних даних, потрібних для роботи макроса. У макросах VBA у Microsoft Office для створення вікон діалогу використовуються обєкти UserForm, які за своєю функціональністю не поступаються формам для створення додатків у візуальних середовищах розробки програмного забезпечення (зокрема, Visual Basic, звідки вони і походять). У Open Office з цією метою використовується значно простіший об’єкт Dialog, основні відмінності якого від UserForm полягають у наступному:

  • по-перше, обєкти UserForm у VBA мають вбудовані модулі, в яких зберігаються коди процедур обробки подій їхніх елементів керування, а макроси, які обслуговують елементи діалогу в OOo Basic зберігаються у модулях окремо від нього;
  • по-друге, форма користувача може відображатися на екрані командою Run Sub/UserForm з вікна редактора VBA, а для запуску на виконання діалогу у Open Office необхідно створювати спеціальний макрос, наприклад:
    Dim MyDlg As Object
    Sub RunDialog()
    MyDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
    MyDlg.execute()
    End Sub
  • По-третє, для обробки подій елементів керування у VBA достатньо створити процедуру-обробник зі спеціальним заголовком виду:
    Sub <обєкт>_<подія>()
    а у Open Office процедури-обробники потрібно призначати для елементів керування на закладці “Події” у вікні властивостей елемента керування.

Нерозуміння цих відмінності часто відлякують VBA-програмістів, які, в свою чергу, культивують необгрунтовану думку про те, що програмування на OpenOffice.org Basic, (навідміну від VBA) є надзвичайно складним і недоступним для рядового користувача ПК.