У Гэри есть книга, предназначенная только для чтения, к которой могут обращаться несколько пользователей. Они могут изменять ячейки, но не сохранять свою работу. При выходе из книги Гэри хочет, чтобы Excel просто закрылся, не сообщая пользователю, что он доступен только для чтения, и не давая ему возможность сохранить копию.
Лучше всего это сделать с помощью макроса для изменения Флаг «Сохранено» в книге непосредственно перед закрытием. Этот флаг внутренне указывает, нужно ли сохранять книгу. Если флаг равен False, тогда Excel знает, что книга не была сохранена (изменения были внесены без сохранения). Если ваш макрос устанавливает флаг в значение True, тогда Excel закроется напрямую, так как считает, что все изменения были сохранены.
Вот как должен выглядеть макрос в простейшем виде:
Private Sub Workbook_BeforeClose (Cancel As Boolean) Если ThisWorkbook.ReadOnly Then ThisWorkbook.Saved = True End IfEnd Sub
Макрос должен быть добавлен к объекту ThisWorkbook в редакторе VBA. Таким образом, он автоматически выполняется непосредственно перед закрытием книги. Флаг установлен в значение True, и когда макрос завершится, Excel продолжит свои обычные процедуры закрытия. Поскольку Excel считает, что несохраненных изменений нет, пользователь не видит сообщения, и книга закрывается.
Источник: