Microsoft's priority throughout the versions of VB up to VB 6 was to make the programmer productive and effective. And "backward compatibility" was very important. Later versions of VB would still compile and run code produced by earlier versions. So while VB programmers were writing a lot of great running code, other languages were hacking through the wilderness of figuring out how to turn the theoretical advantages of OOP into practical results.
The bottom line is that the other languages finally conquered the OOP wilderness. Slowly and gradually, it has become apparent that OOP really is a better way to go. More and more programmers have become familiar and comfortable with the concepts and development environments have become better at letting the advantages of OOP shine through the confusion and complexity that OOP is capable of generating as well.
Bill Gates' software company decided that if any company was going to 'kill' Visual Basic 6, it would be them rather than a competitor. So, never shy and overly cautious, they bet the company (and this was exactly how they described it at the time) and created a completly new and completely different software development environment called .NET.

