Here's why this is complex:
1. The enterprise has hundreds of legacy VBA macros, each one running mission-critical Production processes.
2. Companies are determined to sunset every single one of these VBA macros. However ...
3. It would cost far too much money, time, and design effort to re-write all those macros on another platform (pick your poison there, whether it be Java, Python, or some other), and in the meantime, the business depends on them. Remember, proper replacement means new UI design, new database design (in SQL Server or Oracle), developer effort to code those designs, User Acceptance Testing to make sure it all works, and ongoing Production Support to handle the inevitable bugs for each of those hundreds of macros.
4. Currently, there's nothing to stop Power Users in the company from continuing to create their own new macros, instead of submitting a request to the proper people in the company for a better-designed-and-implemented solution. It's worse than walking up the down escalator.
The solution would be for Microsoft to make it frictionless for users to continue to run existing macros, while putting something in place to guarantee that only someone with a higher-level of access than an ordinary user or manager can create new macros. Only solves part of the problem, but it's better than nothing.
Simply preventing all macros from working is a completely brain-dead "solution" that helps no one and doesn't fix the issue.