One advantage QB45 had over QB64 was multi-modular programming. DIM SHARED would create global variables for a module, whereas COMMON SHARED was needed to share those variables across modules. This was especially helpful if you used like-named DIM SHARED global variables in other programs and wanted to put two or more of those programs together without changing all of the variable names. I know, sloppy engineering, but it got the job done. I'm pretty sure when God made the world, he programmed it this way in QB45, otherwise he'd still be at it. on the 8th trillion day, etc., and don't get me stated on Hell. You need FreeBASIC for that.
@ luke: Great in depth reply on the mechanics of variable use. Not having experienced other programming languages I can't say I fully understand it, but from the perspective of structure and working in programming groups it makes perfect since. I can also see the value in that IDE function, in fact I'm fairly certain I made something like that to change variable names and calls to subs and functions for program modifications before I discovered multi-modular programming in QB. That, and my own REMLINE routine.
Pete