Można spróbować otworzyć plik w trybie binarnym z ustawieniem blokady odczytu i
zapisu dla innych procesów. Jeżeli się to nie uda, oznacza to, że plik został
otwarty przez innego uzytkownika.
Przykładowa funkcja:
Function PlikUzywany(FullFileName As String) As Boolean
' zwraca True jeżeli plik został otwarty przez innego użytkownika
Dim f As Integer
f = FreeFile
On Error Resume Next
Open FullFileName For Binary Access Read Write _
Lock Read Write As #f
PlikUzywany = (Err.Number <> 0)
Close #f
Err.Clear
On Error GoTo 0
End Function
Jeżeli umieścisz go w procedurze zdarzenia Workbook_Open, w module ThisWorkbook, to możesz ją wykorzystać np. w taki sposób:
Private Sub Workbook_Open()
If PlikUzywany("\\SciezkaUNC\NazwaPliku.xls") Then
MsgBox "Sorry, ale inny użytkownik korzysta z pliku bazy !!"
Me.Close False
End Sub
Pozdrawiam |