Excel2010マクロ編

ExcelマクロとVBAの関係

Excelの操作を記録するマクロの記録は、Microsoft Visual Basic for Applications(通常は略してVBA)というプログラム言語に変換されて、プログラムの形で、内部に記録されます。
そのプログラムを、マクロと読んでいるのです。
VBAは、Excelに付属しているプログラム言語ですが、本格的なプログラムを作成することができる立派なプログラム言語です。
ちなみに、Excelの操作を記録するVBAをExcelVBAと呼びます。

Microsoft Visual Basic for Applications エディター

前回作成した記録マクロを保存したブックを開きます。
Microsoft Visual Basic for Applications エディターを起動させます。


VBE(Microsoft Visual Basic for Applications エディター)が開きます。
VBEの画面で、左側のプロジェクトと書かれているウィンドウは、
「プロジェクトエクスプローラー」と呼ばれるものです。
ここには、現在、Excelで開かれているすべてのブックが「プロジェクト」として一覧表示されています。
つまり、プロジェクトとは、この場合、
ブックをVBAの側からみたものと言えるでしょう。
その下は、ほとんど話題にでませんが、
「プロパティウィンドウ」と言います。
ExcelのVBAで扱われるモジュールには、
・Microsoft Excel Objects
・標準モジュール
・クラスモジュール
・フォーム
の4つの種類があります。
(上の図には、 クラスモジュール、フォームは、表示されていません。)
これらは、プロジェクトエクスプローラーの中では、最上位にブックがあり、
それぞれのフォルダに分類され、内容をすべて表示させたり、フォルダを閉じて隠したりすることができます。
いわゆる「マクロ」は、「標準モジュール」と呼ばれるモジュールに記述します。このモジュールは、初期状態ではプロジェクトに存在しないので、VBAで直接コードを記述する場合は、新しく作成する必要があります。
(前回のように、記録機能で新しいマクロを作成した場合、標準モジュールは自動的に作成されます)
ひとつのVBAプログラムは、「プロシージャ」と呼ばれます。

マクロ記録によって記述されたプロシージャは「Sub」で始まり、
「End Sub」で終わっています。
このようなプロシージャを「Sub(サブ)プロシージャ」と呼びます。
Excelでいう「マクロ」をVBA側では「Subプロシージャ」というのだと思ってよいでしょう。
記録機能で作成されたマクロは、Subプロシージャとして標準モジュールに記述されます。