Иметь один вступительный лист (назовем его «Макросы») с сообщением о том, что для продолжения необходимо включить макросы.Сделайте этот лист видимым, а все остальные очень скрытыми.
В модуле ThisWorkbook включите следующие две подпрограммы:
Private Sub Workbook_Open()
Call MacrosOK ' Will only be called if macros are indeed OK.
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Ensures that the macro sheet is always set to the default view when the workbook is saved
Application.ScreenUpdating = False
Sheets("Macros").Visible = True ' Make the macro warning sheet visible
Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In ThisWorkbook.Worksheets
If Not sht.Name = "Macros" Then sht.Visible = xlVeryHidden ' Hide all other sheets
Next sht
Application.ScreenUpdating = True
End Sub
Затем в обычный модуль:
Sub MacrosOK()
' Called on open, or otherwise when macros are enabled
Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In ThisWorkbook.Worksheets
sht.Visible = xlSheetVisible ' Make all sheets visible
Next sht
Sheets("Macros").Visible = xlVeryHidden ' Hide your macro check sheet
Application.ScreenUpdating = True
End Sub
Возможно, вы захотите добавить на лист макроса кнопку с надписью «Продолжить» (или что-то подобное), которая связана с сабвуфером MacrosOK, чтобы позволить пользователю продолжить работу вручную, если она не запускается автоматически.