• ベストアンサー

エクセルのマクロとVBA。

エクセルのマクロとVBAを初心者の人に分かりやすく説明するにはどのような例を挙げて説明すればいいでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 初心者の人に説明するものは、なにもないと思います。 総じて言えば、マクロは、一種のスクリプト型プログラムのひとつです。 必要あって初めてマクロは、本当にどんなものか分かるし、そうでなければ、どんな説明も知らない人には届かないと思います。単にプログラミング言語の一種で作られたもの、というしかありません。 ところで、その定義なのですが、直接の回答ではありませんので、私のは参考意見だけにとどめていただければよいのですが。 VBA(Microsoft Visual Basic for Applications)は、プログラミング言語の Visual Basic をOffice 用に組み込んだものです。Excel 97 は、Visual Basic Version 5, Excel 2000 移行は、Version 6 です。Visual Basic Editor のヘルプのバージョンをクリックすれば出てきます。 Verion 4 マクロ言語は、Office に組み込まれた、それぞれのアプリケーション独自の関数型プログラミング言語で、VBAとはまったく違うものです。この言語の大きな欠点は、Excel、Wordと、まったく違った命令を持っていて、共通性がありません。私たちが直接目に触れる Version 4 マクロ言語の製品では、アドインの「ソルバー」があります。 まず、VBAの利点は、構造化言語であるという点です。また、OLE(Object Linking and Embedding)を利用できることで、WordやOutlook と共有でき、とても便利になったと思います。 #2 さんの書かれた内容は、大村あつし氏の書籍の『かんたんプログラミング Excel VBA』からだと思いますが、マクロは、自動化した機能のことで、本来は、それ以上の意味はないと思います。 私は、MS-DOSの MS-Multiplan(1990年)~Excel 2000(1999年)のメーカー・オリジナル日本語資料を集めましたが、今後、VSTA (Visual Studio Tools for Applications)に移行すれば、今度は、その言語は、VB .Net (今は、VS2005だから、そうは呼ばないかもしれないが)となるわけで、マクロ言語については、今後も変遷していくのだろうと思います。仮に、MSでなくても、同じです。 ところで、Microsoft 側では、マクロ(Macro)というのは、厳密でいうと、引数を伴わないパブリックなSub プロシージャのことだけを指すとしています。つまり、サブルーチンやユーザー定義関数などは、厳密には、マクロとは呼びません。したがって、すべてのプロシージャがマクロであるとは限りません。 VBAは、Microsoft では、当分の間はなくさないというけれども、次言語は、もう決定していますので、実質的な寿命が後どのぐらいあるのか、そう長いものではありません。しかし、VSTA は、Excelの次期バージョンには搭載されない、ということです。マクロの側面からみると、Office では、撤退傾向にあるという印象を、個人的には持ちます。実質的には、切り離して、専門化していくものだと思います。Developer 版が、決して、一般向けではありませんでしたが、Office 2003では、VSTO(Visual Studio Tools For Office)は、Developer版の後継版ではありません。今後、その分、アプリケーション側に組み込み型のマクロ機能を取り込んでいくものではないか、と思います。 例えば、古い例からすると、ピボットテーブルは、組み込みマクロです。私が、Excelでマクロを勉強をすぐにしなかったのは、ピボットテーブルを見たからです。MS-DOSの時代に、ほとんどそっくりのものを、マクロで作ったことがあり、それ以上の必要性が長い間見出せなかったのです。

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

マクロは「マクロセット命令」の略でしょう。マクロセットは「命令や手続きのかたまり」という意味です。 今日においては「マクロを記述している言語がVBAである」と言うことができます。 VBAがリリースされたのはEXCEL5以降です。EXCEL4まではVBAとは言わず「マクロ言語」と呼んでいました。EXCEL4時代に作成したマクロも今でも動きますが、メソッド類は現行のVBAとは少し違いました。(今ほどオブジェクト指向が整理されていなかった)

回答No.2

私も現在VBAを勉強中です。 参考書によると、マクロとは、EXCELの操作を自動化するために生まれた「プログラム」であり、このプログラムの1つ1つのコード(命令)はVBAというプログラミング言語で記述されている、と書かれています。 つまり・・・ マクロ=プログラム 1つ1つのコード(命令)= VBA(プログラミング言語) となります。 マクロの正体はVBAというプログラムです。

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.1

情報が少ないので答えにくいですが、マクロとVBAの違いは同じことをマクロとVBAでやって見せる。この場合は何でもいいです。相互の特徴と欠点を説明すれば尚結構。 マクロやVBAそのもののことを説明したいのであればどんな時に役立つかを見せればよいかと思います。 例としては面倒な反復系の作業(セルをチェック柄に塗りつぶすとか)が良いかと思います。

関連するQ&A