- ベストアンサー
VBとVBAの関係について
Access2002を使用しているのですが、 VBとVBAはどう違うのでしょうか。 ・混在可能なのでしょうか。 ・VBはVBAを含んでいるのでしょうか。 ご回答よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
VBA=VisualBasic for Applications。 VB=Microsoft Visual Basic。 前者は、アクセスやエクセルを操作するための機能の一種。 後者は、純然たるプログラミング言語でC言語等の仲間。 エクセルなんかでは、否定形的な処理を一連の手続きとし記述するマクロ言語が登場。 で、マクロ言語の拡充は、マクロ言語とVBの接近という状況を持って極値に。 だが、幾ら、同様の文法を採用しても、VBAはあくまでもマクロ言語の系譜。 これに対し、VBは、BASIC言語の最新版でありあくまでもプログラミング言語の系譜。 両者は、似て非なるものと言えます。 後者で開発したソフトは、は、アクセスやエクセルがインストールされていないPCでも動作。 ですから、あくまでも後者は開発者のためのプログラミング言語。 ですから、あくめでも前者はアクセスやエクセルのユーザーのためのマクロ言語。 まあ、想定している使用者も違います。
その他の回答 (3)
- neko_noko
- ベストアンサー率45% (146/319)
VBAというのは、「特定の用途(Application)に特化したVB」ということであり、 言うなれば、VBをカスタマイズしたものです。 ExcelVBAならExcelシートにアクセスするための機能が盛り込んであり、 AccessVBAならテーブルを扱うための機能、OutlookVBAならメールを扱うため、 それぞれVBをカスタマイズした上でユーザがすぐに使えるようにしてあるわけです。 なので、VBAもVBの一種であり、VBでできることの多くはVBAでもできます。 反対に、VBでVBAでやるようなことも可能です。 例えば、VBを車と考えると、VBAはパトカーや救急車といったものです。 別にパトカーで自分の子供の送り迎えをしたり、近所のスーパーへ買い物に行っても 「機能的には」問題ありません(現実にやると大問題になりますが…) >すると、AccessではイベントのビルドでVBAで記述できますが、 >そこにVBを書くことはできないと考えていいのでしょうか。 VBを書く、というのが「普通はVBで書くような処理」という意味ならできます。 「VBと同じコード」という意味なら必ずしもそうとは限りません。 最近はVB.NETという新しいバージョン(といっても5年以上前のものですが)ができ、 それはVBAと同じようなコードを書けるか、というとできないかもしれません。 (最近VBAを触っていないので、もしかしたらできるようになってるかもしれませんが) 「VB6」のように6以下の数字が入るようなものが従来のVBAと同じようなコードを使います。 一方、VB200○といった西暦が入るバージョンのものは、この新しい仕組みであり、 従来のものとは書き方が大きく異なるため、必ずしも「そのまま書ける」とは限りません。 >VBAとVBの2つを勉強しなければいけないのでしょうか。 文法的には似てる部分も多いので、 C言語とVBAをいっぺんに覚えるような大変さではないと思います。 ただし、VBとVBAで「実際にやること」は大きく違うので、 「全然違う勉強をしている」と思うことはあるかもしれませんが。
お礼
Accessのデータベースとターゲットは決まっていますので、 とりあえずVBAを勉強することにします。 ご回答ありがとうございました。
>すると、AccessではイベントのビルドでVBAで記述できますが、 >そこにVBを書くことはできないと考えていいのでしょうか。 質問者のいうVBとVBAは同一と思います。 なお、私はACCESSの標準モジュールの自作関数とVBのそれとは共有しています。 FTPサーバーを利用した送受信システムをVBで開発しています。 が、そこで使っている関数の全てはACCESSでも使っています。 ですから、両方を学ぶ必要は是非ではありません。 が、ACCESSのVBAを覚えてもVBでの開発は出来ないと思います。 そこは、VBはC言語と同じプログラミング言語ですから・・・。 まあ、ややこしく考えないでVB=VBAという理解でもOKかと。
お礼
とりあえずはVBAを勉強すればいいのですね。 ご回答ありがとうございました。
非定形的
お礼
ご回答ありがとうございます。 よく分かりました。 すると、AccessではイベントのビルドでVBAで記述できますが、 そこにVBを書くことはできないと考えていいのでしょうか。 Accessでデータベースを作らなければいけないのですが、 VBAとVBの2つを勉強しなければいけないのでしょうか。