Existen ocasiones en que necesitamos comprobar si un libro está abierto. Esta función devuelve True si el libro está abierto y False si no lo está.
BookOpen(Bk)
El argumento es:
Bk: El nombre del archivo que se comprueba.
Function BookOpen(Bk As String) As Boolean
Dim T As Excel.Workbook
Err.Clear 'Borra cualquier error
On Error Resume Next 'Si el código se encuentra con un error, lo salta y continúa
Set T = Application.Workbooks(Bk)
BookOpen = Not T Is Nothing
'Si el libro está abierto, entonces T albergará el objeto de libro
Err.Clear
On Error GoTo 0
End Function
Aquí hay un ejemplo de utilización:
Sub openAWorkbook()
Dim IsOpen As Boolean
Dim BookName As String
BookName = "Ejemplos de funciones personalizadas.xls"
IsOpen = BookOpen(BookName) 'Invoca nuestra función. No olvides el parámetro
If IsOpen Then
MsgBox BookName & " está todavía abierto!"
Else
Workbooks.Open (BookName)
End If
End Sub
Technorati Tags: 