They are very simple languages that are very forgiving and easy to learn. They can do pretty much everything modern languages can, without the crazy learning curve of object oriented programming.
You can easily use it to practice complex control structures and functions. You can also make very function apps with it. VB6 app dependencies are installed automatically in XP, they have been installed automatically since Win98, and for 95 you can still download the VB runtime files for MS's website.
Just remember to specify
Option Explicit
at the start of all your modules and forms, many tutorials don't cover that, but it will essentially force you to declare all variables and functions. Otherwise VB will just implicitly let you use a variable or function without it existing.
Not a big issue until you do something like this
dim sTemp as string
stmep = "hello world"
call msgbox(stemp)
And you sit around trying to figure out why this didn't work. Picture that mistake in a program with a 1000 lines of code :)
And yes, you can code games in VB6 just fine.
Both DirectX and OpenGL work just fine. Though you gotta be careful and the variables are kind of funky. To any nay sayers, this was coded in VB6
http://trevorsarchives.selfip.net/temp/DirectXGraphiccs_01.exe
Not even that much code to do it (obviously lol)