簡単とまではいきませんが。
同名のブックが開いているかどうかは、wbに代入することでエラーが出るかどうか、
ブックが存在しないか、何らかの原因で開くことができないかは、実際に開いてみてエラーが出るかどうかで判断しています。
Sub test() Dim wb As Workbook Const wbName As String = "test.xls" On Error Resume Next Err.Clear 'ブックが既に開いているか Set wb = Workbooks(wbName) If Err.Number > 0 Then Err.Clear 'ブックが存在しないか、開くことができないか Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & wbName) If Err.Number > 0 Then MsgBox wbName & "を開くことができません" On Error GoTo 0 Exit Sub End If On Error GoTo 0 Else MsgBox wbName & "という名前のブックは既に開いています。" On Error GoTo 0 End If End Sub
ありがとうございます。おもったより面倒なんですね。