Как сохранить файл в Excel перед закрытием

Что делает макрос:  Этот макрос защищает от случайного закрытия файла перед сохранением. Он гарантирует, что Excel автоматически сохранит файл перед закрытием.

Excel обычно предупреждает пользователей, которые пытаются закрыть не сохраненную книгу, давая им возможность сохранить перед закрытием. Тем не менее, многие пользователи могут пропустить это предупреждение, случайно нажать кнопку «Нет».

С этим макросом Вы защитите свой файл от невнимательных пользователей.

Как это работает

Этот код запускается событием рабочей книги (BeforeClose- перед закрытием). При нажатии на кнопку Закрыть срабатывает событие и запускается макрос. Суть кода проста — он запрашивает у пользователя, действительно ли он хочет закрыть книгу

Как сохранить файл в Excel перед закрытием

Макрос затем проверяет какую кнопку нажал пользователь ОК или Отмена. Оценка производится с помощью конструкции Select Case. Оператор Select Case является альтернативой в If … Then … Else, что позволяет выполнять проверки условий ваших макросов (обычно используется для большого количества условий).

Код макроса

Private Sub Workbook_BeforeClose(Cancel
As Boolean)Выведем сообщение с "ОК" или "Отмена"
Select Case MsgBox("Сохранить и закрыть?",vbOKCancel)
'Если нажал "Отмена", закрываем окно
Case Is = vbCancel
Cancel=True
'Если нажал "Да", то сохраняем книгу
Case Is=vbOK
ActiveWorkbook.Save
'Завершаем проверку, закрываем Select Case
End Select
End Sub

Как работает этот код

Давайте подробно рассмотрим каждую строчку кода

  1. На шаге 1 мы активируем окно c сообщением, где в качестве проверки используем оператор Select Case. Здесь мы используем аргумент vbOKCancel, чтобы на формочке отображались кнопки ОК и Отмена.
  2. Если пользователь нажал кнопку Отмена в окне сообщения, макрос говорит Excel: «Не выходим! Закрой событие!». Это делается путем присвоения переменной Cancel свойства True
    (Верно). Если пользователь нажал кнопку OK в окне сообщений, п. 3 вступает в силу.
  3. Здесь мы говорим Excel: «Сохранить книгу!». Здесь мы не пишем Cancel = True, поэтому событие успешно завершается.
  4. На шаге 4, мы просто закрываем Оператор Select Case.

Как использовать

Для реализации этого макроса, Вам нужно скопировать и вставить его в код события Workbook_BeforeClose. Размещение макроса здесь позволяет запускать макрос непосредственно перед закрытием excel-файла.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
  3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code.
  4. В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open (можете позже удалить его за ненадобностью)
  5. В правом выпадающем списке свойство BeforeClose
Оцените статью
Добавить комментарий