Microsoftのベーシック
1980年代に広まったBASICは、初心者用に作られたそのもので変数の衝突に関しては、工夫をする必要がありました。
Windows3.1が出た頃にVisual Basic 2.0が使われ始めました。この頃から変数の有効範囲を示すスコープが導入され、変数の衝突に関する問題はなくなってきました。
Visual Basic 6.0とVBA
開発ツールとしては、Visual Basic 6.0を最後に古いタイプのVisual Basicはなくなりましたが。
同じ文法とインターフェイスが、VBA(Visual Basic for Application)に採用されています。
AccessとExcelのVBA
Accessで使用される、VBAは少しAccessのためにカスタマイズされておりデータベースを操作するためのコマンドが追加されています。
追加されたコマンド操作とVBAからDAOオブジェクトというActiveXオブジェクトを使って操作する方法、ADOオブジェクトを使って操作する方法の3つがありますがこれを併用するとデータベースの更新タイミングなどで微妙な差が出てバグにつながることがあるので注意が必要です。
Excelから使うVBAは、ワークシートやワークブックオブジェクトとして供給されており特化しているわけではないので比較的素直な動きをします。
Old Visual Basic 互換言語
その他にも古いタイプのVBA互換の文法を持つ言語がいくつかあります。
1.LibraOfficeのマクロ言語
この言語は、言語の文法として互換性がありますがオブジェクトの使い方が異なります。
2.Gambas3という統合開発環境
この環境はLinuxで動く統合環境で、Excel VBAと同じような使い方ができますが微妙に異なります。