That is holy-war material, but I'll give you my personal opinion.
The language you use depends on what you are coding. I kind of like C# myself, because I work with Microsoft products so much. But to be honest C# is a whole lot like Java (and vice-versa) so the transition between the two is about as easy as it's ever going to get from language to language. Not a Python guy so I don't have an opinion there. And as far as vb.Net... Well it's so different from VB6 (which is pretty much what you are using in VBA) that you might as learn C#. The problem with vb.Net (imho) is that while substantially incompatable with VB6, it still has many legacy quirks. This prevents its from fully embracing any one programming style and leads to some non-intuitive practices. So much so, that if were starting a project in .Net from scratch, I would do it in C# over VB.

But there are some "hard core" apps that I would never ever do in a .Net language. Then you are back to C/C++ (not that I know C++, but I would hire someone who did).