プロが教える店舗&オフィスのセキュリティ対策術

最近officeのVBAを勉強してるのですが「マクロ」と「VBA」って何が違うのでしょうか?

アクセスはマクロとVBA(VBE)が別れてるけど、
エクセルは「マクロの記録」でVBAコードが取得できますよね。

マクロとVBAは同じ意味なのか、違う意味なのか教えていただけますか?

A 回答 (3件)

こんにちは。



#2さんの引用先と同じ内容ですが、日本語として出ていたはずです。

マクロとVBAを、一応、定義として把握していないと、きちんと人には教えられないと思いますね。アクセスには、一般的に、VBA側で作られたものは、マクロとは呼べません。

理由は、「マクロ」というのは、その取り扱い言語は別として、ひとつの作業(タスク)の自動実行を目的とする機能のことです。逆にいうと、ひとつの作業を実行できないものは、マクロとは呼びません。例えば、引数を必要とするユーザー定義関数は、マクロの範疇から外れます。

マイクロソフトでは、こう定義しています。

以下は、内容的に、あくまでも、VBAの範疇に対して書かれています。

マクロは、より意味の限定された用語で、引数を持たないパブリックなSub プロシージャのことだけを指します。すべてのマクロはプロシージャですが、すべてのプロシージャがマクロであるとは限りません。マクロの記録機能を使って生成されるプロシージャとOffice アプリケーションの[マクロ]ダイアログボックスから実行できるプロシージャは、すべてマクロです。

それに反して、VBAというのは、アプリケーション用のVisual Basic プログラミング言語です。

「VBA」で書かれたものを総称して、プロシージャと呼び、マクロとは厳密には意味が異なります。また、Ver.4 の「マクロ関数」で書かれたものも、プロシージャで自動実行で作業をするものも、総称してマクロと呼びます。また、ひとつのブックにあるモジュール(=プロシージャを呼び出すためのオブジェクト)群をプロジェクトと呼び、「モジュール」を組み合わせ一貫した仕事をするようにしたものを「システム」と呼んだりします。

これで、違いが分かっていただけたかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/12/11 20:46

改めていうまでもなく、VBAはマクロを実現するための手段、、、


EXCELにおけるマクロをMSはこのように定義している。
http://office.microsoft.com/en-us/excel-help/abo …
私が、プログラム開発で最初に接したマクロ、という専門用、それはアセンブラのインラインコード(条件によって異なったソースを生成する機能)、Cで言えばINCLIDE、それは、今のマクロ-VBAに、似てなくはない、言葉は時代とともに少しずつ変遷、変質するものである、、、

コンピューター用語辞典
http://ejje.weblio.jp/content/%E3%83%9E%E3%82%AF …
マクロ:macro
一連の命令のかたまりを,一つの命令で置き換えたもののこと.マクロ命令の短縮形.呼ぶ側のプログラム言語のレベルでマクロ定義を起動する命令
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/12/11 20:46

 VBA の大家 田中亨先生がまとめてくださっています。



●Office TANAKA - 今さら聞けないVBA「マクロとVBAの違い」
http://officetanaka.net/excel/vba/beginner/01.htm

>インターネットの個人サイトだけでなく、
>書籍や雑誌、パソコンスクールや有料のセミナー、
>ひどいときはMicrosoftの公式ページでさえ、
>マクロとVBAという用語が混在して使われています。

>正確にいうと、マクロとVBAはまったく別です。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/12/11 20:46

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