Détecter si un classeur Excel est déjà ouvert

Comment détecter par programme si un classeur Excel est déjà ouvert ?

En VBA :

Function ClasseurOuvert(nomFichier As String) As Boolean
    Dim wb As Workbook
    On Error Resume Next
    Set wb = Workbooks(nomFichier)
    On Error GoTo 0
    ClasseurOuvert = Not wb Is Nothing
End Function

Utilisation :

If ClasseurOuvert("fichier.xlsx") Then
    MsgBox "Le classeur est déjà ouvert"
End If