У кого открыт файл? (Microsoft Excel)
Джо спросил, есть ли способ определить в макросе, у кого открыта конкретная книга. Он думал об использовании свойства WriteReservedBy, но, похоже, у него нет нужной информации.
К сожалению, определить эту информацию из VBA невозможно — она просто недоступна. Свойство WriteReservedBy не показывает, у кого открыт файл; он показывает, кто сохранил книгу с помощью пароля. Другими словами, когда кто-то сохраняет книгу с возможностью иметь пароль для ее изменения, это файл «WriteReserved». Свойство WriteReservedBy содержит имя человека, который сохранил файл в состоянии WriteReserved.
Если вам нужен только ответ (о том, у кого открыт файл)
Периодически проще всего собрать список имен открытых файлов и попросить администратора сети сообщить вам, у кого они открыты — такая информация хранится в сети и доступна для администратора.
Другое возможное решение — добавить макрос AutoOpen в каждую книгу, которая записывает на диск временный файл, содержащий имя человека, открывающего файл. Макросу потребуется не только открыть временный файл, но и обработать условия ошибки, например временный файл, который уже открыт. Затем к временному файлу могут получить доступ другие макросы, чтобы увидеть имя, которое он содержит.
Макрос, найденный на следующем сайте, может предоставить другое решение для определения того, у кого открыта конкретная книга:
https://bizintelsolutions.wordpress.com/2015/01/26/who-is-in-excel-xlsx-file/
Еще одно место, где можно найти ответ, — это сайт VBNet. Статья на этой странице содержит код, который можно адаптировать для получения желаемой информации:
http://vbnet.mvps.org/index.html?code/network/netfileenum.htm
Обратите внимание, что код работает только в более старых версиях Windows. Он должен отлично работать в версиях до Windows 7, но осторожнее, когда дело доходит до более поздних версий — вы захотите полностью протестировать его, чтобы убедиться, что он работает в вашей среде.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9511) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Who_Has_the_File_Open [У кого открыт файл?]
.