Depends on which level you want to work; if you want to build applications that don't need a high performance but a solid architecture you can forget about c++ (and yes, nearly forgot everything about c++ because in most projects i worked it was never used -> only c# and java).
Imo the problem with C++ is that you have to fight the programming language first to be able to focus on the real problem. Of course, if you learned it for years you have less troubles with the language, but C++ was never supportive for the high level applications i had to create so far.
About VB... I think you see it too much much from the performance point of view spines. You can accomplish a lot of things with VB, and the performance is mostly sufficient for the application you want to create. Therefore i think VB has its right as a "programming language" although it's more for the unexperienced programmer (who has bad knowledge about OO) to hack some programs.
I know low / high level PROGRAMMING, but not applications. If you were talking about high-level programming then of course C++ isn't all that supportive unless you dig out the appropriate libraries (which actually isn't all that hard... there are plenty of game engines, MFC, Forms...)
Imo C++ allows you to build much more solid programs than all this high-level and managed stuff. Sure, you have to be aware of what you are doing. There is no GC that cleans up your mess (besides, a GC is not perfect either). But at least you have much more control over what the program does than in most other languages. As soon as the compiler writes half of your program for you, lots of unexpected problems can occur.
Yep, I like to have full control over what I write. I even don't like C++ in some aspects, but writing everything in ASM is not really an option.