Trouble is, there is no OOP "standard." OOP correctness is largely left to opinion. We can set a baseline of concepts that a given language must support in order to be considered OOP, but that's only half the battle. It's also important to know, that OOP is not the panacean solution to software. There will be, and already are, paradigm shifts that render OOP obsolete as well. OOP is not something you do, or write. OOP is a mindset, and the proper mindset facilitates the implementation of said in languages that support it.
Many OO purists would argue that VB is not OO because it lacks implementation inheritance (and other things, but this being most notable). True, those who build simple frontends in VB probably never spend time learning OO concepts, but if anyone has actually employed VB in a production environment (e.g. a WinDNA architecture), then they are most certainly familiar with OO concepts. One could even say VB was more advanced than the more traditional languages in terms of OO, as older languages had to be retrofitted with concepts like separation of interface from implementation (don't quote me on that, I don't know when C++ added the idea of abstract base classes).
If we define OO as requiring: polymorphism, genericity, object identification, object messaging, implementation inheritance, etc. (as a lot of OO people do), then almost all languages fall short, with the exception of Smalltalk
Conclusion: I don't consider VB to be the most complete OO environment, but to think of it as being OO inept isn't accurate.