I agree with the majority on saying that VB is not a good beginner language. The reason I don't like it is because it's not the kind of programming I like to do. All I really did was mess with objects and that was very boring for me, I didn't really feel like I was programming; even when I put code into it.
You were weird then. I definitely felt like I was programming when I was using Visual Basic. My code probably wasn't optimized for VB code (because I rarely used pre-built things; I usually wrote my own implementations), but I programmed it, by God!
It's just not the language for me, so that's why I am saying what I am saying. I have also been told (and even seen on here many times) that it gives a new programmer bad habits when programming and even though I don't know all of those bad habits, I can still see where they are coming from.
As I've already said a few times, they are not habits that are impossible to break. Any sort of good programmer will break these habits when they move on to a more powerful language. I think it's a great starter programming language because it "eases you into" the programming idea. You're still programming; I don't think there's any doubt there. Sure, it's a lot easier to do most things, but you're still programming...
I always stand by the saying "Do the hard ones first", and since VB is so easy compared to other languages, it would be best for someone to start on a language that is a little more difficult and one that is more like the majority, like C or Java.
Some times the "hard" languages can be overwhelming. Learning new syntaxes is the easy part in transversing to another language. It's the symantecs what make it difficult. I admit there are huge differences in VB's and C's symantecs, but again, it's nothing that a willing programmer won't be able to learn.
Personally, I don't think it matters much. If you're any good at programming, the language you start with doesn't make a difference (I, personally, started with C++).