(This first appeared in a slightly different form on one of InfoWorld's reader discussion forums, in response to the request "Could you add any comments re VB as a serious OOT language)")
One of the great misconceptions about computer programming is that there are many different "ways" to program. One could write "spaghetti code" or one could write "structured code" or one could write "object oriented code" or presumably, one could write in the new "programming style" that will come along in a few years (which I usually refer to as "Nirvana code"). The reason that "Structured programming" and "object-oriented programming" were both derided for years before taking hold, was simple --- No one wanted to going through the vaulted "paradigm shift" when what you were shifting to wasnt Nirvana Coding. Why bother to "shift" to this style, when youd just have to shift again a couple years later when Nirvana Code was discovered.
Of course, all of that is pure hokum. There never was any paradigm shift. The "principles" (so to speak) of spaghetti code were refined to be labeled "Structured Code", and those principles were further refined to become "Object-Oriented Code", whose principles will be refined again to become the "Next Big Thing" (I see this as "Component Coding" --- whether or not this is "Nirvana Code" remains to be seen).
So, we have a giant sliding scale with a few tick marks on it denoting "structured", "OO", "Nirvana" etc. Therefore, your question is really asking, "On what side of the OO tick mark is VB?" The problem with answering that is that the exact position of the tick mark really cant be said precisely. Its much like a spectrum; at exactly what point have you gone from "Blue" to "Green"?
VB implements many of the "required" traits of OOT, but some better than others. Other environments (such as PowerBuilder, which I work with for three years) may implement more, but not as well. On a simple check-box measure, PowerBuilder is more OO; on a sliding score measure, VB is closer to Nirvana code.