プロが教えるわが家の防犯対策術!

Access VBAとExcel VBAとはどのような違いなんでしょうか?
初めて聞く用語で、どのような違いなのか調べてもピンと来ません…
どなたかご教授願います

A 回答 (4件)

VBAとはVisual Basic Applicationの略でVBという言語をさらにOfficeに特化したものです。


基本的な処理の流れ等に関しては変わりませんが、参照するコントロール等が全く違いますので、別物と言えば別物です・・・
ただ、ExcelおよびAccess共に普通に使えるという事であればさほど苦労はないかと考えます。
『VBの部分は同じでAの部分のみそれぞれのアプリに対応している』と考えると簡単かと思います。
    • good
    • 0

VBAプログラムは、おおきくは・・・、



(01)文字ベースのデータを加工するプログラムと、

(02)「オブジェクト」と呼ばれるもの
   (=ブックやシート、セル、テーブル、
     クエリ、その他部品・パーツ・ユニット)
   を動かすプログラム

・・・・の2つに分かれます。

(01)のことを「一般データ操作」と呼ぶかどうかわかりませんが、でもそういう感じです。
(02)はよく「オブジェクト操作」と呼ばれます。

プログラムの最小単位は「プロシージャ」と呼ばれる単位で、Sub~End Sub、あるは、FunctionからEnd Function、までのあいだで1つのプログラムとなりますが、VBAでは一般的には、その1つのプロシージャの中に、前述の(01)と(02)の両方が混在します。

で、AccessVBAとExcelVBAの違いですが、(01)の部分はおおむねほぼ同じです。
文字列、数値、日付データ、True/Falseなどの2値、などの、文字ベースのデータを加工します。
通常、関数や演算子、ステートメント、といったある意味「命令」たちで加工します。

違ってくるのは(02)の「オブジェクト操作」のほうです。

まず、Excelのオブジェクトには、
シート、セル、ブック、ピボットテーブル、グラフ、グラフの部品、オートシェイプ、など、があります。

そして、Accessのオブジェクトには、
テーブル(実表)、クエリ(仮想表)、フォーム(データ入力画面)、レポート(連続帳票印刷機能)、ピボットテーブル、グラフ、グラフの部品、オートシェイプ、などがあります。

そのほか、目には見えないけど、裏方で動くオブジェクトもあります。大きいもの、小さいものがあります。オブジェクトは大きい・小さい・目に見える・見えない、にかかわらず、「複数の機能の集合体」で、「ユニット・パーツ」というイメージです。
ある意味「ミニミニロボット」といってもいいかもしれません。
文字ベースのデータたちとは違って「立体的・3D的なイメージ」です。

オブジェクト、は、オブジェクトが内包する「メソッド」「プロパティ」「イベント」といった機能たちを引き出しつつ、列挙(Enum)、定数、こちらもステートメントといった命令たちを使って動かします。

オブジェクトには、ピボットテーブル、グラフ、グラフの部品、オートシェイプ、のように、ExcelもAccessも共通のものがあります。リボンの一部もそうかもしれません。

逆に、「Excelの、シート、セル、ブック」と「Accessの、テーブル、クエリ、フォーム、レポート」といったものはお互いに「違う・異なる」部分です。

また、それらのオブジェクトが内包する「メソッド」「プロパティ」「イベント」といった機能たちも、それぞれの内容が全部、異なります。

また、Accessは、「SQL」という「乱暴だけど言わばデータ管理の世界標準の命令」に、「Accessそのものが依存したつくり・仕組み」、になっています。(Excelはそうなってはいません。)

ですので、VBA以外にも「SQL」というものを随所でよく使います。「SQL」はExcelでも使えるのですが、Accessはソフトそのものがそれベースで作ってあるので、Excelよりも頻繁に使います。
その関係で、AccessのVBAの中では、その「SQL」を、Excelよりもたくさん「併用」します。
そこも、Excelと「非常に」大きく異なるところです。


あと、「オブジェクト」はすべて「階層構造」になっていて、Excelの階層構造はAccessの階層構造と比べるとかなり複雑です。
AccessはExcelやWordの「ユーザーフォーム」の階層構造に若干似ていて、Excel本体の階層構造よりはかなりシンプルです。
そのため、ExcelVBAの階層構造をしっかり学んだ方なら、AccessVBA自体はそれほど難易度は高くないと思います。
ただ、Accessの場合、「SQL」の深いところを学習する方がたいへんかもしれません。

かえってわかりにくくなってしまった気がしますので大変申し訳ございませんが、AccessVBAとExcelVBAはそんな感じの「違い」があります。
    • good
    • 1

>初めて聞く用語で、どのような違いなのか調べてもピンと来ません


簡単に言えば、VBAの問題ではなくて、その本体のAccess と Excel の違いですね。
本体とVBA(VB6系)が、インターフェイスでつながっている、と考えればよいと思います。
VBAというのは、アプリ用にVB6のタウンサイズしたものと解釈してもよいと思います。
だから、Access VBAもExcel VBAも本質的には変わらないです。

ただ、実務面でみると、Excel VBAは、入門者からベテランまで幅広く、VB.Net, C# まで出てくるわけで、Excel VBAは底知れないものがあります。Excel で、VBAが出来るといっても、記録マクロを加工するレベルの人さえ含まれます。

私個人はAccess VBAからの恩恵が高いのは、私が覚えた頃は、Access は、VB6を使ってきた人たちが多かったので、そこから学んだものが多くあります。しかし、Access は、Access VBAが出来ても、データベース全体を把握し使いこなさなくてはならないので、VBA自体は、あまり重要なファクターとは言えません。
    • good
    • 0

違うといえばいいのか、違わないと言えばいいのか・・・。


>初めて聞く用語
VBAのことですか?
AccessとExcelはご存知なのでしょうか?
ExcelにはセルがありますがAccessにはないのでその辺りの扱い方が変わりますけど、そういうところさえ掴めばそんなに違わないと言えると思いますが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!