ExcelマクロとVBAの関係
Excel2010 マクロ講座 14回
ExcelマクロとVBAの関係
マクロと言ったり、VBAとよんだり、人によって様々です。いったいどんな違いがあるのか悩んでしまいます。
Excelの操作を記録するマクロの記録は、Microsoft Visual Basic for Applications(通常は略してVBA)というプログラム言語に変換されて、プログラムの形で、内部に記録されます。
そのプログラムを、マクロとよんでいるのです。
VBAは、Excelに付属しているプログラム言語ですが、本格的なプログラムを作成することができる立派なプログラム言語です。
ちなみに、Excelの操作を記録するVBAをExcelVBAと呼びます。
Microsoft Visual Basic for Applications エディター
前回作成した記録マクロを保存したブックを開きます。
Microsoft Visual Basic for Applications エディターを起動させます。
![](gazo/macro/vbe-kidou01.png)
Microsoft Visual Basic for Applications エディターを起動させます。
![](gazo/macro/vbe-kidou01.png)
VBE(Microsoft Visual Basic for Applications エディター)が開きます。
VBEの画面で、左側のプロジェクトと書かれているウィンドウは、
「プロジェクトエクスプローラー」と呼ばれるものです。
ここには、現在、Excelで開かれているすべてのブックが「プロジェクト」として一覧表示されています。
つまり、プロジェクトとは、この場合、
ブックをVBAの側からみたものと言えるでしょう。
その下は、ほとんど話題にでませんが、
「プロパティウィンドウ」と言います。![](gazo/macro/vbe-gamen01.png)
VBEの画面で、左側のプロジェクトと書かれているウィンドウは、
「プロジェクトエクスプローラー」と呼ばれるものです。
ここには、現在、Excelで開かれているすべてのブックが「プロジェクト」として一覧表示されています。
つまり、プロジェクトとは、この場合、
ブックをVBAの側からみたものと言えるでしょう。
その下は、ほとんど話題にでませんが、
「プロパティウィンドウ」と言います。
![](gazo/macro/vbe-gamen01.png)
ExcelのVBAで扱われるモジュールには、
・Microsoft Excel Objects
・標準モジュール
・クラスモジュール
・フォーム
の4つの種類があります。
(上の図には、 クラスモジュール、フォームは、表示されていません。)
これらは、プロジェクトエクスプローラーの中では、最上位にブックがあり、
それぞれのフォルダに分類され、内容をすべて表示させたり、フォルダを閉じて隠したりすることができます。
・Microsoft Excel Objects
・標準モジュール
・クラスモジュール
・フォーム
の4つの種類があります。
(上の図には、 クラスモジュール、フォームは、表示されていません。)
これらは、プロジェクトエクスプローラーの中では、最上位にブックがあり、
それぞれのフォルダに分類され、内容をすべて表示させたり、フォルダを閉じて隠したりすることができます。
いわゆる「マクロ」は、「標準モジュール」と呼ばれるモジュールに記述します。このモジュールは、初期状態ではプロジェクトに存在しないので、VBAで直接コードを記述する場合は、新しく作成する必要があります。
(前回のように、記録機能で新しいマクロを作成した場合、標準モジュールは自動的に作成されます)
(前回のように、記録機能で新しいマクロを作成した場合、標準モジュールは自動的に作成されます)
ひとつのVBAプログラムは、「プロシージャ」と呼ばれます。
![](gazo/macro/vbe-gamen02.png)
![](gazo/macro/vbe-gamen02.png)
マクロ記録によって記述されたプロシージャは「Sub」で始まり、
「End Sub」で終わっています。
このようなプロシージャを「Sub(サブ)プロシージャ」と呼びます。
Excelでいう「マクロ」をVBA側では「Subプロシージャ」というのだと思ってよいでしょう。
記録機能で作成されたマクロは、Subプロシージャとして標準モジュールに記述されます。
「End Sub」で終わっています。
このようなプロシージャを「Sub(サブ)プロシージャ」と呼びます。
Excelでいう「マクロ」をVBA側では「Subプロシージャ」というのだと思ってよいでしょう。
記録機能で作成されたマクロは、Subプロシージャとして標準モジュールに記述されます。