My theology on VB6 is that it makes a hard job easy but inefficient, and should be used when your development time is more important than your run efficiency. Every language has it's use, and learning programming is a nice use of VB. Sure, it can teach some bad habits (case insensitivity, non-explicit declarations) but it can teach basic principles (code seperation, scope). I can honestly say that I personally learned things in VB6 that I still use today in Java and C#.
Back on topic, VB can do anything C can, basically, except inline assembly and compile DLL's (which can be both done with sufficient tweaking, but I've never tried), but it's slow at doing it.