VBとVBAの違いや、どういう時に分ければいいのか、というような質問がたまに質問が出るようなので、こちらでも取り上げる。

先にVBAから説明すると、VBAはOffice製品などのアプリケーションを活用するための言語である。
例えばExcelではExcel4までは独自のマクロ言語、Accessでも独自のBasicがあった。今でもそうだが、各アプリケーションごとにマクロやらスクリプトがあって、それごとに覚える必要がある。それを、マイクロソフトが当時作っていたVBと同じような言語体系でマクロを作れば覚えやすいだろう、ということで作ったのだろう。当時は表計算ならロータス123、データベースならボーランドDBaseがデファクトスタンダードだったのだ。これだけが他のデファクトスタンダードを駆逐したわけではないだろうが、小さいながらも一要因だろうと思う。

単に記述を揃えるだけではない。おそらくは、呼び出す実行ファイルも同じものにしているのだろう。そうすればマイクロソフト社内でも部品の使い回しが効くため効率が格段によくなる。そのことがアプリケーションのマクロであるVBAの可能性を広げたと思う。
例えば、外部データベースとの連携。これだけを取っても、VBと記述内容を合わせられるだけでも、技術者の共有が図れるし、動作保証もできることになる。
今だとかなりいろいろな所にも使えるが、基本はやはりExcelやAccessといったアプリケーションが中心になるべきものである。該当するアプリケーションが起動していないと動かないのだから。


一方、VBは、作りたいように作れる。アプリケーションに表裏一体であるという制限もないので、VBAのように該当アプリケーションがインストールされていないと動かない、ということもない。


勉強する時点で悩む、と言うことなら分かるが、VBAで作るかVBで作るか、悩むところではないと思う。本来は明確にどういうことを実現したいか、が分かっているはずだから。

それでも悩む方がいらっしゃるなら、質問をいただいた際にケースバイケースでも答えてみようと思う。


VB系言語は他の言語とはテキストファイルのEOF(ファイルの終わり)のタイミングが違う。

例えば、10レコードあったとする。通常の言語、例えばCOBOLだと11件目を読み込んだとき、つまり最終レコードの次のレコードを読み込もうとして、なければEOFとなるが、VBAでは10件目を読み込んだとき、つまり最終レコードを読み込んだ時点でEOFになる

これは、ファイルを読み込むアルゴリズムに影響がある。

通常のもの、例えばCOBOLなどだと

 ・ファイルオープン
 ・ファイル読み込み
 ・繰り返し:EOFになるまで(COBOL だと AT END まで)
   (処理)
   ファイル読み込み 
 -繰り返し終わり
 ・ファイルクロース

となる。
しかし、VBAだと

 ・ファイルオープン
 ・繰り返し
   ファイル読み込み 
   (処理)
 -繰り返し終わり:EOFになるまで
 ・ファイルクロース

となる。

ただし、これはテキストファイルに限った話である。VB系言語でも、データベースアクセスでは話が違う。DAOなどを使った場合、最終レコードの次のレコードを読み込もうとして、なければEOFとなるのである。

VBの負の遺産と言えるだろう。別の命令かメソッドを作って、現状の命令を推奨しないようにしていく方がいいかと思う。

VBAに本気で取り組むなら、これは有用だな、と思える資料が2つある。というよりも、あった、というべきだろうか。

◆Visual Basic ユーザーズガイド Microsoft Excel
 該当するバージョンのExeclに付いていたマニュアルである。プロシージャとメソッドの明確な違い、エラー処理とエラー値、自動プロシージャ、外部との連携など、など、今のVBAの書籍ではあまり見かけないようなこと、どちらかというと技術者寄りで書いてあるように思う。
 また、他では見られないのがまた、ロータス123やExcel4からの切り替え、などである。まだ123と争っていたころだからだろう。  

◆Microsoft Excel / Visual Basic プログラマーズガイド for Windows 95 (アスキー出版局)
 上記のマニュアルを一歩掘り下げた感じである。おそらく必見はサイズと速度の最適化について、と、デバッグ、の章である。
 このころはもうExcelの優位性が表れだしていたころだと思う。Excel4からの切り替えにもページは割いてあったが、ロータスにかんしての記載はない。そういう時代背景も懐かしく思い出す。

なお、前者はマニュアルなので入手は難しいだろう。しかし、後者は探せば古書であるようだ。税抜き価格が4,078円、税込みが4,200円なので、消費税が3%時代の書籍であるが、まだまだ使えるだろう。