技術情報
基本構造
ExcelVBAは以下のモジュールで構成されています。

モジュール名 役割
ThisWorkbook Excelファイルをワークブックと呼び、1つのワークブックにこのモジュールは1つだけ定義されています(削除することはできません)。
その「ThisWorkbook」という表記はそのままオブジェクトとして、プログラム中で使用することができます。
このオブジェクトのプロパティを設定したり、イベントにコードを記述することで、ワークブック全体に対する処理を制御することができるようになります。
Sheet*** 1つのワークシートに1つだけ定義されています。
「***」はワークシートの数に応じて、数字が自動的に割り振られます。
なお、このモジュール名(オブジェクト名)は変更することも可能です。
Excel本体側でワークシートを削除すると、このモジュールも自動的に削除されます。
このオブジェクトのプロパティを設定したり、イベントにコードを記述することで、そのワークシートに対する処理を制御することができるようになります。
UserForm*** 1つのワークブックに自由に複数個追加することができます。
「***」はユーザフォームの数に応じて、数字が自動的に割り振られます。
なお、このモジュール名(オブジェクト名)は変更することも可能です。
このオブジェクトにボタンやテキストボックスなどの部品を追加して、オリジナルの画面を開発することができます。
Module*** 1つのワークブックに自由に複数個追加することができます。
「***」は標準モジュールの数に応じて、数字が自動的に割り振られます。
なお、このモジュール名(オブジェクト名)は変更することも可能です。
このモジュールは、ユーザ定義関数や共通の処理や共通の変数を記述するのに用います。
Class*** 1つのワークブックに自由に複数個追加することができます。
「***」はクラスモジュールの数に応じて、数字が自動的に割り振られます。
なお、このモジュール名(オブジェクト名)は変更することも可能です。
この名称がクラス名になりますので、分かりやすいモジュール名に変更することをお勧めします。
このモジュールは、ユーザ定義クラスを記述するのに用います。
クラスとは、プロパティとメソッドの集合体のようなものです。