Determinar si un archivo está en uso utilizando VBA en Microsoft Excel
Con la función a continuación, puede determinar si un archivo está siendo utilizado por otro proceso.
La función devuelve True si no puede obtener acceso completo al archivo.
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