Як запустити макрос в Excel

Незважаючи на те, що запустити макрос в Excel не важко, існує багато способів їх запустити. Деякі способи покликані полегшити використання макросів, тоді як інші способи можуть повністю змінити спосіб взаємодії користувача з вашою книгою. У цій статті ми розглянемо деякі очевидні способи запуску макросів, такі як елементи керування списком макросів та кнопками, а також деякі більш неясні способи, такі як редактор VB та події.

По -перше: Переконайтеся, що макроси увімкнено

Функції безпеки Excel за замовчуванням вимикають макроси. Відкриваючи книгу з підтримкою макросів, користувачам зазвичай пропонується, чи вони хочуть увімкнути макроси.

Якщо ви не можете запустити макроси, спробуйте виконати ці вказівки:

  • Збережіть робочу книгу
  • Закрийте книгу, а потім відкрийте її знову
  • Коли завантажиться книга, ви побачите a Попередження про безпеку підказка (на фото нижче). Натисніть Увімкнути вміст.

Запустіть макрос зі списку макросів

Доступ до списку макросів можна отримати на вкладці Перегляд. Щоб переглянути цей список:

  • Виберіть Перегляд вкладка
  • Натисніть кнопку з написом Макроси щоб відкрити список макросів

  • Виберіть зі списку макрос, який потрібно запустити, а потім натисніть кнопку Біжи кнопку

Ви також можете будь -коли показати список макросів, натиснувши ALT+F8.

Запустіть макрос за допомогою комбінації клавіш

Ви можете призначити комбінацію клавіш для часто використовуваного макросу у вигляді CTRL+або CTRL+SHIFT+. Зробити це:

  • Відкрийте список макросів (Перегляд > Макроси, або ALT+F8)
  • Виберіть макрос, до якого потрібно застосувати ярлик
  • Натисніть Варіанти… показати Параметри макросу піддіалог

  • У текстовому полі під Комбінація клавіш, введіть одну букву, а потім клацніть в порядку. Якщо під час введення літери ви утримуєте клавішу SHIFT, підпис біля вікна відображатиме SHIFT як частину ярлика

ПРИМІТКА: настійно рекомендується використовувати SHIFT під час створення комбінації клавіш! Excel використовує для себе комбінації клавіш CTRL+, наприклад CTRL+C для копіювання або CTRL+V для збереження. Якщо ви створюєте ярлик макросу за допомогою тих чи інших ярликів Excel, ви перезаписуєте ярлик Excel, поки не призначите знову ярлик макросу.

Запустіть макрос з редактора VB

Макроси також можна запускати з редактора VB. Редактор VB дозволяє переглядати код макросу та вносити будь -які зміни перед його запуском.

Щоб запустити макрос у редакторі VB:

  • Відкрийте редактор VB (вкладка Розробник> Visual Basic або ALT+F11)

  • В Проект у вікні двічі клацніть модуль, що містить макрос, який потрібно перевірити
  • У вікні коду модуля, розмістити курсор у будь -якому місці коду макросу між “Sub” та “End Sub”
  • Натисніть на Біжи на панелі інструментів або натисніть комбінацію клавіш F5

Запустіть макрос за допомогою кнопки або фігури

Часто корисно мати на робочому аркуші елемент керування, який користувач може натиснути, щоб запустити макрос, наприклад елемент керування кнопкою або фігурою. Для кінцевих користувачів це набагато швидше, ніж відкриття списків макросів або копання коду макросу у редакторі VB.

Інформацію про те, як створити кнопку або форму, яку можна натиснути, можна знайти тут: Додати кнопку та призначити макрос у Excel.

Автоматично запускати макрос за допомогою подій у VBA

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

Щоб написати код події, потрібно скористатися редактором VB. Наприклад, щоб переглянути події для робочої книги:

  • Відкрийте редактор VB (ALT+F11)
  • Двічі клацніть на Ця робоча книга об’єкт у редакторі VB Вікно проекту
  • Виберіть "Робоча книга" зі спадного меню у верхньому лівому куті вікна коду
  • Натисніть спадне меню праворуч, щоб побачити список подій

Нижче наведено невеликий, але корисний зразок подій Excel, з яких можна запускати макроси.

Workbook_Open ()

Подія Workbook_Open () спрацьовує під час відкриття книги. Якщо після відкриття книги ви отримаєте попередження про безпеку, ця подія активується після натискання кнопки «Увімкнути вміст».

12345 Private Sub Workbook_Open ()MsgBox "Робочу книгу відкрито!"End Sub

Workbook_BeforeClose (Скасувати як логічне значення)

Workbook_BeforeClose () спрацьовує, коли користувач намагається закрити книгу. Це відбувається перед тим, як перевірити, чи потрібно зберегти книгу.

The Скасувати Параметр можна встановити у True, щоб зупинити закриття книги.

123456789 Private Sub Workbook_BeforeClose (Скасувати як логічне значення)Якщо MsgBox ("Ви впевнені?", VbYesNo + vbQuestion, "Close") = vbNo ТодіСкасувати = ПравдаЗакінчити ЯкщоEnd Sub

Worksheet_Change (ByVal Target As Range)

Worksheet_Change () спрацьовує, коли змінюється значення комірки - незалежно від того, чи це змінено макросом, операцією копіювання/вставлення або зовнішнім посиланням. Однак він не спрацьовує, коли значення перераховується за формулою.

The Ціль параметр представляє клітинки, значення яких змінилося.

Якщо ви зміните значення інших клітинок у цій події, подія знову запуститься. Це може спричинити нескінченний цикл. Якщо вам потрібно змінити значення клітинок, не запускаючи цю подію, подумайте про налаштування Application.EnableEvents до помилковий спочатку, а потім знову встановіть значення Правда в кінці процедури події.

123456789 Приватний робочий аркуш_Змінити (ціль ByVal як діапазон)MsgBox "Осередки змінено:" & Target.AddressApplication.EnableEvents = НеправдаДіапазон ("A2"). Значення = Діапазон ("A2"). Значення + цільові клітини. КількістьApplication.EnableEvents = ІстинаEnd Sub

Worksheet_SelectionChange (ByVal Target As Range)

Ця подія спрацьовує, коли вибираються різні клітинки з прицільною сіткою. Параметр Target представляє нові клітинки, які були вибрані.

Ви також можете ініціювати цю подію за допомогою коду, тобто "Діапазон (" A1 "). Виберіть". Як і у випадку Worksheet_Change (), вам слід бути обережним при виборі інших комірок усередині цієї події, оскільки ви можете викликати нескінченний цикл. Використовуйте Application.EnableEvents.

123456789 Private Sub Worksheet_SelectionChange (ByVal Target As Range)Якщо Target.Address = "$ A $ 1" ТодіMsgBox "Курсор у вихідному положенні."Закінчити ЯкщоEnd Sub

Зупинити запущений макрос

Запущений макрос можна перервати натисканням ВИХІД або CTRL+BREAK. За замовчуванням перерваний макрос відображатиме таке діалогове вікно:

Клацання Кінець зупинить макрос, поки Продовжити відновить його. Клацання Відлагоджувати відкриє макрос у редакторі VB і сфокусує рядок коду, на якому було призупинено виконання. (Усередині редактора VB ви можете зупинити або відновити макрос за допомогою кнопок Виконати або Завершити на панелі інструментів.)

Application.EnableCancelKey

Ви можете вимкнути можливість зупинки макросу за допомогою клавіш ESC або CTRL+BREAK, встановивши Application.EnableCancelKey майна. Ця властивість має три можливі значення:

  • xlInterrupt - це значення за замовчуванням, яке змушує Excel показувати діалогове вікно вище
  • xlDisabled - усуває можливість зупинки запущеного макросу
  • xlErrorHandler - під час спроби переривання виникає помилка, яку можна обробляти в коді

Щоразу, коли виконання коду припиняється, Excel завжди скидає значення Application.EnableCancelKey назад до xlInterrupt.

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

1234567891011 Sub UpdateBaseData (ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy TargetTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptEnd Sub

Примусово закрити Excel за допомогою диспетчера завдань Windows

Якщо макрос "завис" або Excel став занадто зайнятим, щоб визнати спробу переривання, можливо, вам доведеться закрити сам Excel за допомогою Диспетчер завдань Windows. (ПРИМІТКА. Якщо ви це зробите, ви можете втратити будь-яку незбережену роботу, і вам доведеться покладатися на версію вашої книги, яка автоматично відновлюється.)

  • Відкрийте диспетчер завдань безпосередньо за допомогою CTRL+SHIFT+ESC
  • Виберіть “Процеси
  • Розгорніть пункт «Microsoft Excel», щоб відобразити всі книги
  • Виберіть книгу, яку потрібно закрити, а потім натисніть Завершити завдання у нижньому правому куті

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave