Можно реализовать систему блокировки с помощью макроса VBA:
Когда пользователь открывает файл, создается скрытый временный файл (например, lock.txt).
Если файл уже открыт, новый пользователь увидит предупреждение и не сможет редактировать документ.
При закрытии Excel временный файл удаляется.
Пример VBA-кода для блокировки:
Код
Private Sub Workbook_Open()
Dim lockFile As String
lockFile = ThisWorkbook.Path & "\lock.txt"
' Проверяем, существует ли файл lock.txt
If Dir(lockFile) <> "" Then
MsgBox "Файл уже открыт другим пользователем!", vbExclamation, "Доступ запрещен"
ThisWorkbook.Close False
Exit Sub
End If
' Создаем lock-файл
Open lockFile For Output As #1
Print #1, "Locked"
Close #1
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Удаляем lock-файл при закрытии книги
On Error Resume Next
Kill ThisWorkbook.Path & "\lock.txt"
On Error GoTo 0
End Sub