Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EDO_VBA.doc
Скачиваний:
3
Добавлен:
11.08.2019
Размер:
494.08 Кб
Скачать

8.5. Виклик і завершення роботи процедур

З прикладами виклику процедур і функцій з коду ми вже стикалися. Для цього досить записати ім'я процедури або функції, передати їй необхідні параметри, а для функції ще і набути повертаного значення. Одні процедури можна викликати з інших процедур. Але як дати користувачу можливість запустити найпершу процедуру?

У нашому розпорядженні наступні можливості:

ˆ створити макрос (тбт. спеціальну процедуру, що не приймає параметри, в модулі NewMacros) і запустити його по імені, кнопці або комбінацією клавіш. Макрос потім може викликати і інші процедури;

ˆ створити форму і скористатися набором подій цієї форми і элементів управління на ній або просто елементом управління на листі Excel або документі Word;

ˆ призначити процедурі спеціальне ім'я (AutoExec(), AutoNew() і т. д.). Повний список таких спеціальних імен можна подивитися в документації.

Правда, оскільки раніше ці можливості активно використовувалися вірусами, в Officі 2003 за умовчанням ці макроси запускатися не будуть. Для того, щоб забезпечити їм (і багатьом іншим макросам) можливість запуску, необхідно змінити встановлений рівень безпеки меню Сервіс | Макрос | Безпека або забезпечити цифрові підписи для ваших макросів;

ˆ замість спеціального імені для макросу використовувати подію: наприклад,

подія запуску додатка, подія відкриття документу і т. п. Це рекомендований Microsoft спосіб забезпечення автоматичного запуску програмного коду.

ˆ можна запустити додаток з командного рядка з параметром /m і ім'ям макросу, наприклад: winword.exe /mMyMacros

Дуже зручно в цьому випадку використовувати ярлики, в яких можна вказати цей параметр запуску. У VBA цілком допустима ситуація, коли функція запускає на виконання саму себе. Проте подібних викликів краще уникати (по можливості заміняючи їх на цикли). Причина — проблеми з читаністю і можливе вичерпання оперативної пам'яті. Для завершення виконання процедури в VBA передбачені конструкції End і Exit. Синтаксис їх дуже простий:

Exit Sub

End Sub

Роблять вони одно і те ж — завершують роботу поточної процедури. Проте використовуються в різних ситуаціях:

ˆ оператор End — це завершення роботи процедури після того, як усе зроблено. Після оператора End код процедури закінчується;

ˆ оператор Exit — це негайне завершення роботи функції в ході її роботи. Зазвичай поміщається у блок оператора умовного переходу, щоб зробити вихід, як тільки з'ясувалося, що функції по якихось причинах далі виконуватися не треба (наприклад, далі йде код обробоника помилок).

9. Вбудовані функції мови VBA

9.1. Що таке вбудовані функції

У мові програмування VBA передбачено декілька десятків вбудованих функцій. Вони доступні у будь-якій програмі на мові VBA, при цьому байдуже, в середовищі якого програмного продукту ми знаходимося — Excel, Word, Access або, приміром, AutoCAD. Використовуються вони дуже активно, і у багатьох ситуаціях без них не обійтися. Професійні програмісти застосовують їх абсолютно автоматично, а звичайним користувачам хочеться порадити витратити декілька годин на знайомство з ними, тому що без знання цих функцій ефективно працювати в VBA не вийде. Додатковим аргументом на користь їх вивчення є те, що практично ідентичний набір функцій є в звичайному Visual Basic і VBScript, а багато з цих функцій з тими ж назвами і синтаксисом зустрічаються і в інших мовах програмування — C++, Delphi, Java, JavaScript і т. д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]