Microsoft's own solution:Function IsOpen(FileName As String) As BooleanDim wb As WorkbookFor Each wb In Application.WorkbooksIf UCase(wb.Name) = UCase(FileName) ThenIsOpen = TrueExit FunctionEnd IfNext wbIsOpen = FalseEnd Function