みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マクロとVBAの違いは?

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

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

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

投稿日時 - 2012-12-05 20:13:47

QNo.7831377

困ってます

質問者が選んだベストアンサー

こんにちは。

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

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

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

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

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

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

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

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

これで、違いが分かっていただけたかと思います。

投稿日時 - 2012-12-06 13:04:17

お礼

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

投稿日時 - 2012-12-11 20:46:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

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

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

投稿日時 - 2012-12-05 21:56:49

お礼

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

投稿日時 - 2012-12-11 20:46:09

ANo.1

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

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

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

>正確にいうと、マクロとVBAはまったく別です。

投稿日時 - 2012-12-05 21:05:48

お礼

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

投稿日時 - 2012-12-11 20:46:07

あなたにオススメの質問