С помощью функции ниже вы можете определить, используется ли файл другим процессом.

Функция возвращает True, если вы не можете получить полный доступ к файлу.

Function FileAlreadyOpen(FullFileName As String) As Boolean

' returns True if FullFileName is currently in use by another process

' example: If FileAlreadyOpen("C:\FolderName\FileName.xls") Then...

Dim f As Integer

f = FreeFile

On Error Resume Next

Open FullFileName For Binary Access Read Write Lock Read Write As #f

Close #f

' If an error occurs, the document is currently open.

If Err.Number <> 0 Then

FileAlreadyOpen = True

Err.Clear

'MsgBox "Error #" & Str(Err.Number) & " - " & Err.Description

Else

FileAlreadyOpen = False

End If

On Error GoTo 0

End Function