Привет, всё оказалось сложнее, чем казалось, убил пару дней, чтобы всё отточить.
Настраиваем автоматическое закрытие Excel файла при отсутствии активности пользователя в течение определенного времени.
Очень часто в повседневной деятельности нам приходится командой работать с Excel файлом, который находится в общем доступе на сетевом диске. В случае, если файл содержит умные таблицы, то предоставление общего доступа через Review->Share Workbook не представляется возможным из-за ограничений самого Excel. Это порождает проблему блокирования рабочего файла, если один забывчивый сотрудник оставил файл открытым после небольших коррекций и ушёл, например, обедать, а второму сотруднику срочно нужно внести в файл новую информацию. Примеров Вы сами можете вспомнить огромное количество.
Ну что же, приступим!
Задача: Необходимо обеспечить автоматическое сохранение и закрытие файла после бездействия пользователя. При этом пользователь может вносить коррекции в файл, а потом бездействовать, либо просто открыть файл и ничего не делать. Под действием мы понимаем изменение любого диапазона ячеек (удаление значений, ввод новых данных и т.д.) на конкретном листе книги.
Решение:
В целом, чтобы выполнить все условия задачи необходимо будет использовать метод .OnTime. Он запускает таймер на выполнение процедуры закрытия файла. При этом нужно будет прерывать действие запущенного таймера при внесении новых изменений, и запускать его заново.
Теперь конкретно. Для начала приведу код, а потом всё объясню.
Макрос в Excel, Word - описание.