Проблема с событием Workbook_Open()
заключается в том, что, если вам все равно нужно будет выполнять действия с рабочей книгой вручную в течение дня, запускается макрос, который может быть источником ошибок в зависимости от того, что делает ваш макрос.
Кроме того, вы можете использовать планировщик заданий Windows, как упомянуто выше, для запуска сценария VB, который будет запускать макрос в вашей книге.
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False 'turn off alerts
xlApp.Application.Visible = False 'keeps Excel hidden
Set xlBook = xlApp.Workbooks.Open("C:\MyPath\MyWorkbook.xlsm", 0, False)
xlApp.Run "MACRO_NAME"
xlBook.Save
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
Просто введите сценарий в блокноте и сохраните его в формате .vbs (а затем запустите планировщик задач Windows для запуска .vbs).