The VBA Language is odd, when looked at through the prism of .Net, it's based mainly on VB6 and runs in an unmanaged code area interacted with through com interfaces.. essentially this means that it's stayed frozen in time to updates and development for decades and is a little bit quirky. There is no strict inheritance which is nice to work around and you can't import references to standard assemblies unless they've been marked as com visible, and there are other considerations to make if you're thinking of doing that with your other projects. All in all it's really very easy to be down on VBA but at the same time, having the ability to write code on the back of popular office applications to automate regular tasks or even pull/push data from common databases is brilliant. It might not be the most challenging or exciting but making tools that can do those things is always useful in the office and goes a long way!
Table of contents: