Макроси в програмі Microsoft Access, додані до об’єктів інтерфейсу, як-от кнопок, текстових полів, форм і звітів, називаються макросами інтерфейсу користувача. Це відрізняє їх від макросів даних, які додаються до таблиць. Макроси інтерфейсу користувача використовуються, щоб автоматизувати послідовність дій, наприклад відкриття об’єкта, застосовування фільтра, запуск операції експорту та багато інших завдань. У цій статті описано вдосконалений конструктор макросів, а також основні завдання, пов’язані зі створенням макросу інтерфейсу користувача.
Примітка.: Ця стаття не стосується веб-програм Access.
У цій статті
Огляд
Макроси можуть міститися в об’єктах макросу (іноді їх називають автономними макросами), або їх може бути вбудовано у властивості події форм, звітів чи елементів керування. Вбудовані макроси стають частиною батьківського об’єкта або елемента керування. Об’єкти макросів відображаються в області переходів у розділі Макроси, а вбудовані макроси – ні.
Кожен макрос складається з однієї або кількох дій макросу. Залежно від робочого контексту деякі дії макросу можуть бути недоступні.
Конструктор макросів
Нижче наведено деякі основні особливості побудовника макросів.
-
Каталог дій Дії макросу впорядковано за типом, і їх можна шукати.
-
Функція IntelliSense Коли ви вводите вирази, функція IntelliSense пропонує можливі значення та дає змогу вибрати правильне.
-
Сполучення клавіш Сполучення клавіш пришвидшують і полегшують написання макросів.
-
Перебіг програми Створюйте макроси, які легше читати, з рядками для приміток і групами дій.
-
Умовні вирази Використовуйте складнішу логіку макросів завдяки підтримці вкладених виразів "Якщо", "Інакше" та "Інакше якщо".
-
Повторне використання макросів У каталозі дій відображаються інші раніше створені макроси, щоб ви могли скопіювати їх до тих, над якими зараз працюєте.
-
Ще простіший спільний доступ Скопіюйте макрос і вставте його як XML у повідомлення електронної пошти, допис у групі новин, блоґ або веб-сайт зразка коду.
Ось відео про основні області конструктора макросів.
Створення автономного макросу
Під час цієї процедури створюється автономний об’єкт макросу, який відображатиметься в області переходів у розділі Макроси. Автономні макроси найкраще підходять, коли потрібно повторно використовувати макрос у різних місцях програми. Викликаючи макрос з інших макросів, ви можете уникнути дублювання коду в кількох місцях.
-
На вкладці Створення в групі Макроси та код натисніть кнопку Макрос.
Відкриється конструктор макросів. -
На панелі швидкого доступу натисніть кнопку Зберегти.
-
У діалоговому вікні Зберегти як введіть ім’я макросу та натисніть кнопку "OK".
-
Перейдіть до розділу Додавання дій до макросу.
Створення вбудованого макросу
Під час цієї процедури створюється макрос, вбудований у властивість події об’єкта. Такий макрос не відображається в області переходів, але його можна викликати з подій, як-от Завантаження або Після клацання.
Оскільки макрос стає частиною об’єкта форми чи звіту, радимо використовувати вбудовані макроси, щоб автоматизувати завдання, характерні для певної форми чи звіту.
-
В області переходів клацніть правою кнопкою миші форму або звіт, що міститиме макрос, і виберіть пункт Режим розмітки.
-
Якщо аркуш властивостей ще не відображається, натисніть клавішу F4.
-
Клацніть елемент керування або розділ із властивістю події, у яку потрібно вбудувати макрос. Елемент керування чи розділ (або всю форму чи звіт) також можна вибрати з розкривного списку в розділі Тип вибору у верхній частині аркуша властивостей.
-
В області завдань "Аркуш властивостей" перейдіть на вкладку Подія.
-
Клацніть у полі властивості для тієї події, яку має ініціювати макрос. Наприклад, для кнопки: щоб макрос запускався після натискання кнопки, клацніть у полі властивості Після клацання.
-
Якщо поле властивості містить слова [Вбудований макрос], це означає, що макрос для цієї події вже створено. Ви можете відредагувати наявний макрос, виконавши решту дій цієї процедури.
-
Якщо поле властивості містить слова [Процедура події], це означає, що процедуру Visual Basic for Applications (VBA) для цієї події вже створено. Щоб отримати змогу вбудувати макрос у подію, доведеться видалити процедуру. Для цього можна видалити слова [Процедура події], але спочатку потрібно перевірити цю процедуру, щоб переконатися, що її видалення не порушить потрібних функцій у базі даних. У деяких випадках функції процедури VBA можна відтворити за допомогою вбудованого макросу.
-
Натисніть кнопку Побудувати .
-
Якщо відкриється діалогове вікно Вибір побудовника, виберіть Побудовник макросів і натисніть кнопку OK.
Відкриється конструктор макросів. Перейдіть до наступного розділу, щоб додати дії до макросу.
Додавання дій до макросу
Дії – це окремі команди, з яких складається макрос. Кожна з них називається відповідно до того, що вона робить, наприклад, Знайтизапис (FindRecord) або Закритибазуданих (CloseDatabase).
Крок 1. Пошук дії макросу
Щоб додати дію, перш за все потрібно знайти її в розкривному списку Додати нову дію або в каталозі дій.
Примітки.:
-
За замовчуванням у розкривному списку Додати нову дію та в каталозі дій відображаються лише дії, які можна виконувати в недовірених базах даних. Щоб переглянути всі дії, зробіть ось що:
-
На вкладці Конструктор у групі Відобразити або приховати натисніть кнопку Відображати всі дії.
-
-
Якщо каталог дій не відображається, на вкладці Конструктор у групі Відобразити або приховати натисніть кнопку Каталог дій.
Щоб знайти дію, скористайтеся одним із цих способів:
-
Клацніть стрілку розкривного списку Додати нову дію та прокрутіть униз до потрібної дії. Спочатку вказано елементи перебігу програми, а далі йдуть дії макросу в алфавітному порядку.
-
Знайдіть дію в області каталогу дій. Дії згруповано за категоріями. Розгорніть кожну категорію, щоб переглянути дії. Якщо вибрати дію, її стислий опис відобразиться в нижній частині каталогу дій.
-
Знайдіть дію в області каталогу дій, використовуючи поле пошуку у верхній частині цієї області. З кожним введеним символом зі списку дій зникатимуть макроси, що не відповідають пошуковому запиту. Програма Access шукає введені символи як в іменах макросів, так і в їхньому описі.
Крок 2. Додавання дії до макросу
Знайшовши потрібну дію, додайте її до макросу одним із наведених способів.
-
Виберіть дію в списку Додати нову дію або просто почніть вводити її ім’я в полі. Програма Access додасть дію в розділі, де відображається список Додати нову дію.
-
Перетягніть дію з каталогу до області макросів. Під час цього відобразиться спеціальний рядок (чи рамка), що покаже, куди буде вставлено дію, коли ви відпустите кнопку миші.
-
Двічі клацніть дію в каталозі дій.
-
Якщо в області макросів вибрано дію, програма Access додасть нову дію відразу під нею.
-
Якщо в області макросів вибрано блок Група, Якщо, Інакше якщо, Інакше або Вкладений макрос, програма Access додасть нову дію до цього блоку.
-
Якщо в області макросів нічого не вибрано, програма Access додасть нову дію в кінець макросу.
Примітки.:
-
Усі створені макроси вказано в каталозі дій у вузлі У цій базі даних.
-
Якщо до області макросів перетягнути автономний макрос (з розділу Макроси), програма створить дію Виконатимакрос (RunMacro), яка запускає перетягнутий макрос. Вкладені макроси (за наявності) можна викликати, використовуючи розкривний список.
-
Якщо просто потрібно скопіювати дії з автономного макросу до поточного (а не створювати дію Виконатимакрос), клацніть його правою кнопкою миші в каталозі дій і виберіть команду Додати копію макросу.
-
Якщо до області макросів перетягнути вбудований макрос (який указано під об’єктом форми чи звіту), його дії буде скопійовано до поточного макросу.
-
-
Також можна створити дію, перетягнувши об’єкт бази даних з області переходів до області макросів. Якщо до області макросів перетягнути таблицю, запит, форму, звіт або модуль, програма Access додасть дію, яка відкриває таблицю, запит, форму або звіт. Якщо до області макросів перетягнути ще один макрос, програма Access додасть дію, яка запускає макрос.
-
-
Крок 3. Заповнення аргументів
Більшість дій макросу потребують принаймні одного аргументу. Опис кожного аргументу можна переглянути, вибравши дію та навівши вказівник миші на аргументи. Для багатьох аргументів можна вибрати значення з розкривного списку. Якщо для аргументу потрібно ввести вираз, функція IntelliSense допоможе ввести вираз, запропонувавши можливі значення під час введення, як показано на зображенні нижче.
Щоб додати потрібне значення, коли воно відобразиться, двічі клацніть його або виділіть за допомогою клавіш зі стрілками, а потім натисніть клавішу табуляції чи Enter.
Докладні відомості про створення виразів див. в статті Загальні відомості про вирази.
Відомості про використання функції IntelliSense із властивостями у веб-базах даних
Коли ви створюєте вбудований макрос інтерфейсу у веб-сумісній формі, функція IntelliSense дає змогу додати до виразу будь-яку властивість форми. Однак у веб-базі даних за допомогою макросів інтерфейсу можна отримати доступ лише до певної підмножини властивостей форми. Наприклад, якщо у вас є елемент керування "Елемент_керування1" на формі під назвою "Форма1", функція IntelliSense дасть змогу додати [Forms]![Форма1]![Елемент_керування1].[ControlSource] до виразу в макросі інтерфейсу користувача. Однак, якщо потім опублікувати цю базу даних у службах Access Services, макрос із таким виразом призведе до помилки, коли його буде запущено на сервері.
У наведеній нижче таблиці показано властивості, які можна використовувати в макросах інтерфейсу користувача у веб-базах даних.
Об’єкт або елемент керування |
Властивості, які можна використовувати |
---|---|
Форма |
Caption (Підпис), Dirty (Внесені зміни), AllowAdditions (Дозволити додавання), AllowDeletions (Дозволити видалення), AllowEdits (Дозволити редагування) |
Вкладка |
Visible (Видимий) |
Підпис |
Caption (Підпис), Visible (Видимий), ForeColor (Колір тексту), BackColor (Колір тла) |
Вкладення |
Visible (Видимий), Enabled (Увімкнуто) |
Кнопка |
Caption (Підпис), Visible (Видимий), Enabled (Увімкнуто), ForeColor (Колір тексту) |
Текстове поле |
Enabled (Увімкнуто), Visible (Видимий), Locked (Заблоковано), ForeColor (Колір тексту), BackColor (Колір тла), Значення (Value) |
Прапорець |
Enabled (Увімкнуто), Visible (Видимий), Locked (Заблоковано), Value (Значення) |
Зображення |
Visible (Видимий), BackColor (Колір тла) |
Поле зі списком |
Enabled (Увімкнуто), Visible (Видимий), Locked (Заблоковано), Value (Значення) |
Список |
Enabled (Увімкнуто), Visible (Видимий), Locked (Заблоковано), Value (Значення) |
Елемент керування браузера |
Visible (Видимий) |
Підформа |
Enabled (Увімкнуто), Visible (Видимий), Locked (Заблоковано) |
Навігаційний елемент керування |
Enabled (Увімкнуто), Visible (Видимий) |
Переміщення дії
Дії виконуються в порядку згори донизу макросу. Щоб перемістити дію вгору або вниз у макросі, скористайтесь одним із наведених нижче способів.
-
Перетягніть дію вгору або вниз у потрібне місце.
-
Виберіть дію, а потім натисніть клавіші Ctrl + стрілка вгору або Ctrl + стрілка вниз.
-
Виберіть дію, а потім натисніть стрілку Вгору або Вниз праворуч в області макросів.
Видалення дії
Щоб видалити дію макросу, зробіть ось що:
-
Виберіть дію та натисніть клавішу Delete. Також можна натиснути кнопку Видалити (X) праворуч в області макросів.
Примітки.:
-
Якщо видалити блок дій, як-от блок Якщо або Група, всі дії в цьому блоці теж буде видалено.
-
Команди Вгору, Вниз і Видалити також доступні в контекстному меню, яке з’являється, якщо клацнути дію макросу правою кнопкою миші.
-
Керування перебігом програми за допомогою виразів "Якщо", "Інакше якщо" та "Інакше"
Щоб дії макросу виконувалися, лише коли виконуються певні умови, скористайтеся блоком Якщо (If). Він замінює стовпець Умова, який використовувався в попередніх версіях Access. Блок Якщо можна розширити блоками Інакше якщо (Else If) і Інакше (Else), як і в інших мовах послідовного програмування, наприклад VBA.
На цьому зображенні показано простий блок Якщо з блоками Інакше якщо та Інакше:
Блок Якщо виконується, якщо поле "Термін дії" менше за поточну дату.
Блок Інакше якщо виконується, якщо поле "Термін дії" дорівнює поточній даті.
Блок Інакше виконується, якщо не виконується жоден із попередніх блоків.
На цьому блок Якщо закінчується.
Додавання блоку "Якщо" до макросу
-
Виберіть дію Якщо в розкривному списку Додати нову дію або перетягніть її з каталогу дій до області макросів.
-
У полі вгорі блоку Якщо введіть вираз, який визначає, коли виконуватиметься блок. Вираз має бути логічний (тобто повертати значення "Так" або "Ні").
-
Додайте дії до блоку Якщо, вибравши їх із розкривного списку Додати нову дію, що відобразиться в межах блоку, або перетягніть їх з каталогу дій до блоку Якщо.
Додавання блоків "Інакше" або "Інакше якщо" до блоку "Якщо"
-
Виберіть блок Якщо , а потім у нижньому правому куті блоку натисніть кнопку Додати інакше або Додати ще якщо.
-
Якщо ви додаєте блок Інакше якщо, введіть вираз, який визначає, коли виконуватиметься блок. Вираз має бути логічний (тобто повертати значення "Істина" або "Хибність").
-
Додайте дії до блоку Інакше якщо або Інакше, вибравши їх із розкривного списку Додати нову дію, що відобразиться в межах блоку, або перетягніть їх з каталогу дій до блоку.
Примітки.:
-
Команди додавання блоків Якщо, Інакше якщо та Інакше доступні в контекстному меню, яке з’являється, якщо клацнути дію макросу правою кнопкою миші.
-
Блоки Якщо можна вкладати (до 10 рівнів максимум).
-
Створення вкладених макросів
Кожен макрос може містити кілька вкладених макросів. Вкладений макрос викликається за іменем із дій макросів Виконатимакрос (RunMacro) або Уразіпомилки (OnError).
Блок Вкладений макрос додається до макросу так само, як дія макросу, як описано в розділі Додавання дій до макросу. Доданий блок Вкладений макрос можна перетягнути до нього дії макросу або вибрати дії зі списку Додати нову дію , що з'явиться в межах блоку.
Примітки.:
-
Щоб створити блок Вкладений макрос, також можна вибрати одну або кілька дій, клацнути їх правою кнопкою миші та вибрати команду Створити блок вкладеного макросу.
-
Вкладені макроси завжди мають бути останніми блоками в макросі; під вкладеним макросом не можна додавати будь-які дії (крім вкладених макросів). Якщо запустити макрос, який містить лише вкладені макроси без призначення потрібного вкладеного макросу, буде запущено лише перший вкладений макрос.
-
Щоб викликати вкладений макрос (наприклад, у властивості події або за допомогою дії Виконатимакрос чи У разі помилки ), використайте такий синтаксис:
ім'я_макросу.ім'я_вкладеного макросу
Групування пов’язаних дій
Щоб полегшити читання макросу, можна згрупувати дії та призначити групі змістовне ім'я. Наприклад, можна згрупувати дії, які відкривають і фільтрують форму в групі "Відкрити та фільтрувати форму". Це спрощують перегляд дій, пов'язаних між собою. Блок "Група " не впливає на те, як виконуються дії, і групу не можна викликати або запустити окремо. Основне використання макросу використовується для позначення групи дій, яка допомагає зрозуміти макрос під час його читання. Крім того, під час редагування великого макросу можна згорнути кожен блок групи до одного рядка, зменшивши обсяг прокручування.
Ось як згрупувати дії макросу в блок Група:
-
Виберіть дії, які потрібно згрупувати.
-
Клацніть правою кнопкою миші вибрані дії та виберіть команду Створити груповий блок.
-
У полі вгорі блоку Група введіть ім’я групи.
Якщо дії ще не додано до макросу, зробіть ось що:
-
Перетягніть блок Група з каталогу дій до області макросів.
-
У полі вгорі блоку Група введіть ім’я групи.
-
Перетягніть дії макросу з каталогу дій до блоку Група або виберіть їх зі списку Додати нову дію, який відображається в межах блоку.
Блоки Група можуть містити інші блоки Група. Такі вкладення можуть досягати 9 рівнів.
Розгортання та згортання дій макросу або блоків
Коли ви створюєте новий макрос, конструктор макросів відображає дії макросу з усіма видимими аргументами. Залежно від розміру макросу, можливо, доцільно згорнути деякі чи всі його дії та блоки, щоб полегшити редагування. Так буде простіше скласти загальне уявлення про структуру макросу. Ви можете розгорнути деякі або всі дії, щоб їх відредагувати.
Розгортання або згортання однієї дії макросу або блоку
-
Клацніть знак "плюс" (+) або "мінус" (–) ліворуч від імені макросу або блоку. Або за допомогою клавіші зі стрілкою вгору чи вниз виберіть дію або блок, а потім згорніть чи розгорніть його за допомогою клавіш зі стрілками вліво та вправо.
Розгортання або згортання всіх дій макросу (але не блоків)
-
На вкладці Конструктор у групі Розгорнути або згорнути натисніть кнопку Розгорнути дії або Згорнути дії.
Розгортання або згортання всіх дій і блоків макросу
-
На вкладці Конструктор у групі Розгорнути або згорнути натисніть кнопку Розгорнути все або Згорнути все.
Порада.: Щоб "зазирнути" всередину згорнутої дії, наведіть на неї вказівник миші. Аргументи дії відобразяться в підказці.
Копіювання та вставлення дій макросу
Якщо потрібно повторювати дії, уже додані до макросу, ви можете скопіювати та вставити наявні дії так само, як абзаци тексту в текстовому редакторі. Нова дія додається відразу під зараз вибраною. Якщо вибрати блок, дії вставляються в нього.
Порада.: Щоб швидко дублювати вибрані дії, утримуючи клавішу Ctrl, перетягніть дії до розташування в макросі, куди їх потрібно скопіювати.
Надання спільного доступу до макросу
Якщо скопіювати дії макросу до буфера обміну, їх можна вставити як розширювану мову розмітки (XML) у будь-яку програму, яка приймає текст. Це дасть змогу надіслати макрос колезі в повідомленні електронної пошти або опублікувати його на форумі, у блозі чи на іншому веб-сайті. Після цього одержувач зможе скопіювати XML-файл і вставити його в конструктор макросів Access. Макрос буде відтворено в початковому вигляді.
Запуск макросу
Макрос можна запустити одним із наведених нижче способів.
-
Двічі клацніть макрос в області переходів.
-
Викличте макрос за допомогою дії Виконатимакрос (RunMacro) або Уразіпомилки (OnError).
-
Введіть ім’я макросу у властивості події об’єкта. Новий макрос буде запущено, коли ця подія активується.
Налагодження макросу
Якщо виникнуть проблеми із запуском макросу, виявити причину проблеми кількома способами.
Додавання дій з обробки помилок до макросу
Радимо додавати дії з обробки помилок під час створення кожного макросу й не видаляти їх згодом. Якщо вдатися до цього методу, програма Access відображатиме опис помилок, коли вони стаються. Опис помилки допомагає зрозуміти, у чому проблема, і швидше виправити помилку.
Щоб додати вкладений макрос обробки помилок до макросу, виконайте наведені нижче дії.
-
Відкрийте макрос у режимі конструктора.
-
У нижній частині макросу з розкривного списку Додати нову дію виберіть пункт Вкладений макрос.
-
У полі праворуч від слова Вкладений макрос введіть його ім’я, як-от Обробник помилок.
-
З розкривного списку Додати нову дію, що відображається всередині блоку Вкладений макрос, виберіть дію макросу Вікноповідомлення (MessageBox).
-
У полі Повідомлення введіть такий текст: =[MacroError].[Опис]
-
У нижній частині макросу з розкривного списку Додати нову дію виберіть пункт Уразіпомилки (OnError).
-
Для аргументу Перейти до укажіть значення Ім’я макросу.
-
У полі Ім’я макросу введіть ім’я вкладеного макросу обробки помилок (у цьому прикладі Обробник помилок).
-
Перетягніть дію макросу Уразіпомилки на самий початок макросу.
На зображенні нижче показано макрос із дією Уразіпомилки і вкладений макрос під назвою Обробник помилок.
Дію макросу Уразіпомилки розміщено у верхній частині макросу. Вона викличе вкладений макрос Обробник помилок, якщо стається помилка.
Вкладений макрос Обробник помилок запускається, лише якщо його викликає дія Уразіпомилки, і відображає вікно повідомлення, що описує помилку.
Використання команди "Поетапно"
"Поетапно" – це режим налагодження макросу, який дає змогу виконувати дії макросу по черзі. Після виконання кожної дії відображається діалогове вікно з інформацією про неї та кодами помилок, які виникли. Однак у діалоговому вікні "Покрокове виконання макросу" не наводиться опис помилки, тому ми радимо використовувати вкладений макрос з обробки помилок, описаний у попередньому розділі.
Щоб перейти в режим "Поетапно", зробіть ось що:
-
Відкрийте макрос у режимі конструктора.
-
На вкладці Конструктор у групі Знаряддя натисніть кнопку Поетапно.
-
Збережіть і закрийте макрос.
Під час наступного запуску макросу відкриється діалогове вікно Єдиний крок макросу . У діалоговому вікні відображаються такі відомості про кожну дію:
-
Ім’я макросу
-
Умова (для блоків "Якщо")
-
Ім’я дії
-
Аргументи
-
Номер помилки (0 означає, що помилки не виникли)
Для кожної дії натискайте одну з трьох кнопок у діалоговому вікні.
-
Щоб переглянути відомості про наступну дію в макросі, натисніть кнопку Крок.
-
Щоб зупинити макроси, які зараз виконуються, натисніть кнопку Зупинити всі макроси. Режим "Поетапно" залишатиметься активованим, коли ви запустите макрос наступного разу.
-
Щоб вийти з цього режиму та продовжити виконання макросу, натисніть кнопку Продовжити.
Примітки.:
-
Якщо натиснути кнопку Крок після останньої дії в макросі, режим "Поетапно" залишатиметься активним, коли ви запустите макрос наступного разу.
-
Щоб перейти в режим "Поетапно", коли макрос виконується, натисніть клавіші Ctrl+Break.
-
Щоб перейти в режим "Поетапно" на певному етапі макросу, додайте дію макросу Покроково на цьому етапі.
-
Режим "Поетапно" недоступний у веб-базі даних.
-
Перетворення макросу на код VBA
Макроси надають підмножину команд, доступних мовою програмування Visual Basic for Applications (VBA). Якщо вам потрібно більше функцій, ніж можуть надавати макроси, ви можете легко перетворити автономний об'єкт макросу на код VBA, а потім скористатися розширеним набором функцій, який надає VBA. Майте на увазі, однак, що код VBA не буде запущено в браузері; будь-який код VBA, доданий до веб-бази даних, буде запущено, лише якщо базу даних відкрито в Access.
Примітка.: Вбудовані макроси не можна перетворити на код VBA.
Щоб перетворити макрос на код VBA, зробіть ось що:
-
В області переходів клацніть правою кнопкою миші об’єкт макросу та виберіть пункт "Режим конструктора".
-
На вкладці Конструктор у групі Знаряддя натисніть кнопку Перетворити макроси на Visual Basic.
-
У діалоговому вікні Перетворити макрос укажіть, чи потрібно додати код обробки помилок і примітки до модуля VBA, а потім натисніть кнопку Перетворити.
Програма Access підтвердить, що макрос перетворено, і відкриє редактор Visual Basic. Щоб переглянути та відредагувати модуль, в області Project двічі клацніть елемент "Перетворений макрос".