回答(6件)

1

あまり、考えなくてもいいです。 「マクロ」という大きな範疇(はんちゅう)があり、その中に「VBA(=「Visual Basic for Applications」)」があります。 しかし、今、少なくとも日本では、「VBA」=「マクロ」として使われています。 何の前提条件もなしに、「マクロ」と言えば、「VBA」を指していますから、考えなくてもいいのです。

1人がナイス!しています

1

【マクロ】 ・ソフトの操作を自動化するための付加機能の名称。 【VBA】 ・Microsoft Office 製品群のマクロ機能を実現させる手段となるプログラム言語名。

1人がナイス!しています

1

「VBA」は「Visual Basic For Applications」の略で、「Microsoft Ofiice(=Application)」のための、「Visual Basic 的な」「言語」という意味でいいと思います。 数あるプログラミング言語の中のひとつ、という捉え方でいいのではないかと思います。 Excel、Word、Access、PowrPoint、Outlook、などで使えます。(動きます。) Microsoft Ofiice に属するソフト以外では使えません。(動きません。) 一方、「マクロ」はちょっとあいまいです。 Excel、Word、Access、PowrPoint、Outlook、それぞれ少しずつ違いがありますし、市販書籍もWeb記事も文脈で意味がコロコロ変わってきます。 多いのは、 「マクロ」→「開発タブのマクロの記録ボタンで作ったモノ」 とか 「マクロ」→「VBAで書かれたプログラムのこと」 「マクロ」→「プロシージャのこと」 といった説明です。 (※※01 プロシージャ=VBAプログラムの最小まとまり、最小単位。Word、Access、その他、全部に共通の用語です。) ぶっちゃけ、めんどくさいです。 そして誰も正確なことを教えてくれないので、むしろどうでもいい、気にする必要なし、と言ってもいいかもしれません。 ただ、それぞれのソフト自身は、「マクロ」を明確に、「こういうもの」と決めて認識しているようです。 例えばExcelの場合・・・、 Excelの自身は、 「標準モジュールやシートモジュール、ブックモジュール」に書いた、 「Sub」で始まるプロシージャ、 あるいは 「Public Sub」で始まるプロシージャを、 「マクロ」と認識しているようです。 (※※02 シートモジュールやブックモジュールの場合であっても、イベントプロシージャと呼ばれるタイプのプログラムは、「Private」の部分を「Public」に書き直して始めても、「マクロ」とは認識されません。 また、標準モジュールなどであっても、「Private Sub」や「Function」で始まるプロシージャも、「マクロ」とは認識されません。) 例えばクイックツールバーやリボンをカスタマイズしたい場合、「マクロ」と呼ばれるモノをそれらに「ボタン」として表示し・自動化動作をさせたい場合は、前述のようなプロシージャがすべて「マクロ」としてリストアップされます。 リボンの開発→「マクロ」ボタン、で表示される「マクロ」も、すべて、そいうモノたちが、リストアップされます。 (もちろん、「Private Sub」や「Function」で始まるプロシージャは、マクロとは認識されないので、リストアップされません。) ※よって、そのリストに『 テスト的なプログラムまでマクロと認識されてしまってウザイ 』という場合は、Sub の前にPrivateと書き足してあげれば、そのリストからはとりあえずは消えます(いいのかわるいのかわかりませんが)。そうしてしまったせいでエラーで動かなくなってしまう場合は、仕方ないので、Subから始まるままにしておきます。 なお、Excelの場合、「マクロの記録」機能で自動記録されるモノ」は、 その実態(or実体)が・・・、 ・「標準モジュール」に自動で書かれた、 ・「Sub」で始まるプロシージャ、 ・・・なので、 最初に書いた基準と合致するので、 自動的に「マクロ」と認識されます。 WordとPowerPoint、Outlookの場合も、基準はExcelに似ていると思います。 (ただ、マクロの記録ボタンがあったりなかったりします。Wordはありますけど、PowerPoint、Outlookは、僕は見つけられませんでした。無いっぽいです) Accessの場合は、まったく違います。 「標準モジュールやシートモジュール、ブックモジュール」に書いた、 「Sub」で始まるプロシージャ、 あるいは 「Public Sub」で始まるプロシージャを、 「マクロ」とは認識しません。 Accessは、メニューをパズル的に組み合わせていったようなモノを「マクロ」と呼んでいます。作成した時点ではVBAプログラムで自動的に残る、ということにはなりません。 ただ、手動で、「VBAに変換」というメニューにて、AccessマクロをVBAプログラムに変換することはできます。 わけがわからなかったと思いますが、僕も、まともに説明された書籍やサイトは一度も見たことがありません。

1人がナイス!しています

1

VBAはVisual Basic for Applicationsですので、そのアプリケーション内で動くVisual Basicです。尚、Visual Basicはプログラミング言語の一つです。一方、マクロはアプリケーションの操作を記憶し、それを再現するプログラムを指します。

1人がナイス!しています

0

マクロはVBAだけに限りません。 マクロという言葉は独立して存在します。 JavaScriptで書かれる事もあるし、Googleスプレッドシートのマクロはその派生です。 VBAというのはVBをベースにしたプログラミング言語です。 マクロ=文章 VBA=日本語 と考えて、 「文章を日本語で作る」 とすれば判りやすいでしょうか?