Насколько я знаю, вы не можете включать / отключать макросы из открытой книги на лету .
Тем не менее, вам не нужно этого делать, потому что макросы запускаются только благодарящелчок пользователя.
Единственный случай, который я бы увидел, - это процедуры событий (Worksheet_Change
или другие).
Затем можно создать процедуры для активации / деактивации событий и вызывать их с помощью кнопок в вашей рабочей книге:
Sub enableEvents()
Application.EnableEvents = True
End Sub
Sub disableEvents()
Application.EnableEvents = False
End Sub
Вы также можете попробовать эти советы на веб-сайте Криса Пирсона , используя глобальные переменные, которые вы измените в зависимости от своих потребностей:
Public AbortChangeEvent As Boolean
и проверьте, чтобы потом:
Private Sub Worksheet_Change(ByVal Target As Range)
If AbortChangeEvent = True Then
Exit Sub
End If
'
' rest of code here
'
End Sub