Ah, if you're looking for
insights, I may not have too many of those. It was a long time ago! But let me see what I can remember.
The big thing about VB is the obvious one: it was really easy to get started using it, and despite the flaws in the visual environment and the language itself, it was good enough to get things done.
In fact, Basic was a lot better than the language we were originally going to put in, which was barely more than a glorified batch language (and not even as powerful as .bat).
The idea we had at the beginning was that you'd drag an arrow on the screen from one component to another, signifying that an event triggered on the first component would make an action happen on the other. This is where the phrase "fire an event" came from: I was looking for a verb for this, and "trigger" didn't sound right. I was frustrated and had a bunch of rubber bands on the table, so I started firing them at the screen. That didn't help. So I fired up a doobie, and between flicking the lighter and firing the rubber bands, "fire an event" seemed like the phrase to use.
What worked well in VBX? Well again it was fairly simple to use and easy for people to make extensions with. The big disaster was that it was pretty much tied into the Win16 programming model, so when Windows moved to 32 bits, VBX wasn't going to cut it and Microsoft developed OCX to replace it.