Te anexo la macro para lo que solicitas, para que funcione las macros deberán habilitarse.
Private Sub Workbook_Open()
'Por.Dante Amor
If Dir("C:\archivo.txt") = "" Then
MsgBox "Acceso dengado"
ThisWorkbook.Close
End If
End Sub
Si las macros no se habilitan entonces el libro si se abre, pero entonces, te recomiendo que las hojas del libro estén ocultas y si existe el archivo entonces la macro las muestre, por ejemplo:
Ejecuta la siguiente macro para que las hojas se oculten y no puedan mostrarse más que con macro:
Sub OcultarHojas()
'Por.Dante Amor
For Each h In Sheets
If h.Name <> "Hoja1" Then
h.Visible = xlVeryHidden
End If
Next
End Sub
Ahora pon la siguiente macro en los eventos de workbook
Private Sub Workbook_Open()
'Por.Dante Amor
If Dir("C:\archivo.txt") = "" Then
MsgBox "Acceso dengado"
ThisWorkbook.Close
End If
For Each h In Sheets
If h.Name <> "Hoja1" Then
h.Visible = True
End If
Next
End Sub
Solamente si habilitan las macros y si el archivo existe, entonces las hojas se muestran. Si no habilitan las macros, solamente se verá una hoja.
Para que quede todo igual cuando cierren el libro, agrega la siguiente macro también en los eventos de workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Dante Amor
For Each h In Sheets
If h.Name <> "Hoja1" Then
h.Visible = xlVeryHidden
End If
Next
ThisWorkbook.Save
End Sub
Saludos.Dante Amor
Recuerda valorar la respuesta.