Перейти до основного контенту

VBA Excel: як закрити вікно Excel

6 хв читання
345 переглядів

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

Наприклад, при автоматизації завдань, може виникнути ситуація, коли необхідно закрити Excel після виконання певної операції або Програми. У VBA існує кілька способів закрити вікно Excel залежно від конкретного завдання.

Один із способів-використання методу Quit(). Даний метод закриває всі відкриті книги, не зберігаючи зміни, і завершує роботу Excel в цілому. Він застосовується для чистого і швидкого закриття Excel, без підтвердження збереження змін.

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

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

Закриття вікна Excel: використання VBA

Для закриття вікна Excel за допомогою VBA можна використовувати Об'єкт Application і його метод Quit. Метод Quit закриває поточне вікно Excel без збереження змін, якщо вони були внесені.

Ось приклад коду VBA, який закриває вікно Excel:

'Закриття вікна Excel
Application.Quit

В даному прикладі коду створюється підпрограма CloseExcelWindow, яка викликає метод Quit для об'єкта Application. Цей метод негайно закриває поточне вікно Excel.

Якщо ви хочете закрити вікно Excel, зберігаючи при цьому зміни, то можете використовувати інший метод - saveandclosewindow. Даний метод зберігає зміни в документі перед закриттям вікна:

'Збереження змін та закриття вікна Excel
Application.Save
Application.Quit

В даному прикладі коду викликається метод Save для об'єкта Application, який зберігає зміни в активному документі перед закриттям вікна. Потім викликається метод Quit, який закриває вікно Excel.

Використовуючи наведені вище приклади коду, ви можете легко закрити вікно Excel за допомогою VBA та контролювати, чи зберігаються чи не зберігаються зміни. Зверніть увагу, що за допомогою цих методів усі відкриті документи Excel також будуть закриті.

Простий спосіб закрити вікно Excel за допомогою VBA

Якщо ви працюєте з макросами в Excel і хочете закрити поточне вікно програми за допомогою коду VBA, то існує простий спосіб зробити це:

  1. Перейдіть до редактора VBA, натиснувши Alt + F11.
  2. Вставте наступний код у модуль VBA:

Sub CloseExcelWindow()Application.QuitEnd Sub
  1. Натиснути Alt + F8 для відкриття вікна Макрос.
  2. Виберіть макрос "CloseExcelWindow" і натисніть кнопку Запустивши.

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

Закриття вікна Excel із збереженням змін через VBA

Перший спосіб-використання методу Save. Цей метод зберігає всі зміни в активній книзі перед закриттям. Для закриття вікна зі збереженням змін, можна скористатися наступним кодом:

Sub CloseExcelWithSave()ActiveWorkbook.SaveApplication.QuitEnd Sub

Другий спосіб-використання методу DisplayAlerts. Цей метод дозволяє керувати відображенням попереджувальних вікон. Встановивши значення False, можна відключити попереджувальне вікно про збереження змін при закритті. Для закриття вікна зі збереженням змін без попереджувального вікна, можна використовувати наступний код:

Sub CloseExcelWithSaveAlertOff()Application.DisplayAlerts = FalseActiveWorkbook.Close SaveChanges:=TrueApplication.DisplayAlerts = TrueEnd Sub

Третій спосіб-використання методу OnTime. Цей метод дозволяє спочатку затримати закриття вікна на деякий час, а потім виконати збереження змін і закриття. Це може бути корисно, якщо ви хочете надати Користувачеві можливість скасувати закриття вікна. Нижче наведено приклад коду:

Sub CloseExcelWithSaveDelayed()Application.OnTime Now + TimeValue("00:00:05"), "SaveAndClose"End SubSub SaveAndClose()ActiveWorkbook.SaveApplication.QuitEnd Sub

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

Закриття вікна Excel без збереження змін за допомогою VBA

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

Для закриття вікна без збереження змін можна використовувати VBA-код. У Visual Basic for Applications існує спеціальна команда-ActiveWindow.Close, яка дозволяє закрити активне вікно без збереження змін.

Наведений нижче код демонструє застосування цієї команди:

Sub CloseWithoutSaving()Application.DisplayAlerts = FalseActiveWindow.CloseApplication.DisplayAlerts = TrueEnd Sub

В даному коді спочатку відключається відображення повідомлень-попереджень (Application.DisplayAlerts = False), і лише потім використовується команда ActiveWindow.Close . Після закриття вікна відображення повідомлень-попереджень відновлюється (Application.DisplayAlerts = True ).

Щоб використовувати цей код, досить відкрити вбудований редактор VBA в Excel (натиснувши Alt+F11 ), створити новий модуль (натиснути Insert -> Module ) і скопіювати код в створений модуль. Потім можна призначити створену макросу гарячу клавішу або додати її в панель інструментів для зручного доступу.

Тепер, при необхідності закрити вікно Excel без збереження змін, можна просто викликати створений макрос і він виконає необхідні дії.