Highest Rated Comments


Piddoxou9 karma

As a professional VBA developer, I have felt left in the cold by your team for many years. Every couple of years there is a new Office release, and the biggest changes include UI improvements to Excel, new functionalities like XLOOKUP, etc, but improvements to the VBA IDE are next to nothing.

Some main shortcomings of the current VBA language, which have been in there for many decades already and which are considered to be basic features in any OOP language:

  • Inheritance - it's not possible to inherit an implementation of a procedure in an interface among classes. Only polymorphism is possible.
  • Interfacing - it works in a very clumsy way, e.g. if you implement a class interface to a class, you have to manually add all procedures of the interface to the class just to make the compiler happy, even if there is no implementation.
  • Overloading - it doesn't exist in its pure form. There are workarounds like doing ByRef parameters as Variant, but it's clumsy and not proper.
  • Initiating a new instance of a class which is located in an add-in (.xlam) and not in the VBProject itself is not possible. The only way to do it is by initiating the class inside the xlam, which means that you need to add an initiation procedure for every single class in the xlam if you intend to use it outside of the xlam.

I could go on, but my question is this: Why do you choose to focus on UI spreadsheet improvements, whereas clearly the VBA IDE deserves structural improvements? Do you ever intend to make such structural changes to the VBA IDE in the future? If not, why not?

Piddoxou2 karma

Hi Keyur, could you update the link? It doesn't seem to work

Piddoxou2 karma

I am aware of other languages out there having better features. We are actually in the process of moving all our tools from VBA to python. But there is a lot of legacy code which needs maintenance for at least several years to come.

Piddoxou2 karma

Different people, different needs...