Не найдя подходящего решения, я пошёл на компромисс: положил в сетевую папку docm-файл, в который добавил макрос, закрывающий документ по таймауту простоя. При такой схеме одновременное редактирование документа невозможно, зато становится возможным редактировать его поочерёдно. Поясню: в обычной ситуации часто бывает так, что кто-то из сотрудников открыл документ и оставил его в таком состоянии, из-за чего другие сотрудники не могут его редактировать. Макрос исключает такую ситуацию: если над документом не выполняется никаких действий в течение 60 секунд, то он сохраняет и закрывает документ. Также макрос добавляет метку даты и имени пользователя для каждого нового абзаца.
Const interval As Double = 3 ' seconds
Dim prevSelStart As Long
Dim prevSelEnd As Long
Dim timer As Long
Const timeout As Double = 60 ' seconds
Sub AutoOpen()
selStart = 0
selEnd = 0
timer = 0
Application.OnTime When:=DateAdd("s", interval, Now), Name:="Service", Tolerance:=1
End Sub
Sub Service()
If Selection.Paragraphs(1).Range.ComputeStatistics(wdStatisticWords) > 0 And _
Selection.Paragraphs(1).Range.Characters(1) <> "[" Then
Selection.Paragraphs(1).Range.InsertBefore ("[" & Application.UserName & " " & Date & "] ")
End If
If Selection.Start = prevSelStart And Selection.End = prevSelEnd Then
timer = timer + interval
Else
timer = 0
prevSelStart = Selection.Start
prevSelEnd = Selection.End
End If
If timer >= timeout Then
ThisDocument.Close SaveChanges:=wdSaveChanges
End If
Application.OnTime When:=DateAdd("s", interval, Now), Name:="Service", Tolerance:=1
End Sub