You shouldn't have to buy anything for hobby programming. If you want to use VB you can download the free version from Microsoft. I suggest you avoid VB6 and get a dot net version. I think C# is also free for certain versions and if you are so inclined, most versions of Python are free.
There are free versions of Visual Studio, providing C#, VB.Net and a bunch of other languages which can now be used with .Net, including Python (search for Visual Studio Express).
Your decision should depend on your requirements tho; are you doing web pages, or do you want client based applications, if so, do you want a user interface which runs on a specific OS or do you want it to run on many.
I have been reading about QT5 and their QML markup language for UI, and this is looking quite attractive, as well as being multi-platform. However I have not started to do any coding in it yet so I cannot really judge. Give it a try if you were ever fond of C or C++.
Personally I would stay well away from the old VB6, it had its day but is not the nicest way to write code any more. I'm not a hater, I used it extensively for quite some time, but newer languages let you do more with less code.