Как объяснено в , этот вопрос : многопоточность в VBA не может быть выполнена изначально.
Не может быть сделано изначально с VBA. VBA построен в однопоточной квартире. Единственный способ получить несколько потоков - это создать DLL в чем-то отличном от VBA, имеющем интерфейс COM, и вызывать его из VBA.
Таким образом, запуск всех 5 макросов одновременно потребует много работы.
Но OP, упомянутый в комментарии, будет одним из вариантов последовательного запуска всех 5 макросов.
Что вы можете сделать, это:
- Добавить новый модуль
- Добавить новый публичный саб в этом модуле
- Ссылка на все имена макросов в этом подпункте
Пример того, как может выглядеть этот макрос:
Public Sub allMacros()
macroName1
macroName2
macroName3
Sheet1.macroNameNotUnique
Sheet2.macroNameNotUnique
End Sub
Теперь запуск этого макроса будет запускать все указанные макросы последовательно.