Function IsOpen(File$) As Boolean Dim FN%, FF$, a FN = FreeFile On Error Resume Next FF = Dir(File) If Err Then IsOpen = False: Exit Function If FF = "" Then IsOpen = False: Exit Function Open File For Random Access Read Write Lock Read Write As #FN Close #FN IsOpen = Err End Function
Function IsOpen(File$) As Boolean Dim FN%, FF$, a FN = FreeFile On Error Resume Next FF = Dir(File) If Err Then IsOpen = False: Exit Function If FF = "" Then IsOpen = False: Exit Function Open File For Random Access Read Write Lock Read Write As #FN Close #FN IsOpen = Err End Function
Function IsOpen(File$) As Boolean Dim FN%, FF$, a FN = FreeFile On Error Resume Next FF = Dir(File) If Err Then IsOpen = False: Exit Function If FF = "" Then IsOpen = False: Exit Function Open File For Random Access Read Write Lock Read Write As #FN Close #FN IsOpen = Err End Function
[/vba] А я у себя чуть подправил.
Андрей, случайно наткнулся на твой код. Заинтересовался. У меня-то урезанный вариант. Разбираю код. Не пойму, в каком случае возникнет ошибка при попытке назначения FF = Dir(File)
Function IsOpen(File$) As Boolean Dim FN%, FF$, a FN = FreeFile On Error Resume Next FF = Dir(File) If Err Then IsOpen = False: Exit Function If FF = "" Then IsOpen = False: Exit Function Open File For Random Access Read Write Lock Read Write As #FN Close #FN IsOpen = Err End Function
[/vba] А я у себя чуть подправил.
Андрей, случайно наткнулся на твой код. Заинтересовался. У меня-то урезанный вариант. Разбираю код. Не пойму, в каком случае возникнет ошибка при попытке назначения FF = Dir(File) Alex_ST
У Гарнаева нашел функцию CanCheckOut. Вот пример кода из книги: [vba]
Код
Sub q() Debug.Print ActiveWorkbook.FullName If Excel.Workbooks.CanCheckOut(sDir & "\" & sFile) Then Debug.Print "Редактирование разрешено" Else Debug.Print "Редактирование запрещено" End If End Sub
[/vba] sDir - путь к проверяемому файлу sFile - имя проверяемого файла P.S. для проверки режима доступа на домашнем компе можно создать нового пользователя, зайти в систему под новым пользователем и открыть проверяемый файл.
У Гарнаева нашел функцию CanCheckOut. Вот пример кода из книги: [vba]
Код
Sub q() Debug.Print ActiveWorkbook.FullName If Excel.Workbooks.CanCheckOut(sDir & "\" & sFile) Then Debug.Print "Редактирование разрешено" Else Debug.Print "Редактирование запрещено" End If End Sub
[/vba] sDir - путь к проверяемому файлу sFile - имя проверяемого файла P.S. для проверки режима доступа на домашнем компе можно создать нового пользователя, зайти в систему под новым пользователем и открыть проверяемый файл.GrIsle