VBA作成の際、コードを書き込む場所として「標準モジュール」と「クラスモジュール」の2種類があります。
それぞれの特徴をご紹介していきます。
・標準モジュール
関数や変数などすべてのコードを書け、Public な定数や配列や構造体などは、標準モジュールにのみ宣言できます。
マクロとして実行できるのは、標準モジュールに宣言された Public な Sub 関数です。Public な Function 関数は、エクセルの数式から使用できます。
他のシートで同じ処理をしたい場合、標準モジュールに Public な関数で作成すると、他のシートや標準モジュールから呼び出せるようになります。
作業を自動化したい場合などであれば標準モジュール上での作成で問題ないです。
・クラスモジュール
オブジェクト指向でVBA設計したい場合に使用されるモジュールです。処理をひとまとまりにしたものをオブジェクトとして、クラスに格納されている情報を必要な時に宣言で呼び出して使用します。使いこなせるようになると、変数の書き換えを制限したり、引数の削減できたり、メンテナンス性に優れ、見やすいコードが書けるようになります。カプセル化をイメージすると理解しやすいかもしれません。その他、オブジェクト指向のプログラミング言語としてPython、Ruby、PHPなどがあります。
ExcelVBAでは基本的に標準モジュールと関数で事足りますが、プログラミングの上達をVBAで目指している方はクラスモジュールでマクロ作成してみてはいかがでしょうか。
以上、「標準モジュール」と「クラスモジュール」のご紹介でした。