見出し画像

ExcelVBA┃モジュール種類と違い

コードウィンドウにでコードを書く場所をモジュールと言いますが、そのモジュールにはいくつか種類があります。

「VBAエディタにあるウィンドウの役割」でも少し触れていますが、シートモジュール、ブックモジュール、フォームモジュール、標準モジュール、クラスモジュールの5種類あってそれぞれ使い分けながらコードを書いていきます。が、難しくありません。基本的には標準モジュールに書きます。スキルが上がって視野が広がるとやりたいことも増えてくるので、その時に追加スキルとして他のモジュールを使っていけばいいと思います。ただ一応どんなものか書いておきます。


[1] 標準モジュール

言葉通り標準のモジュールです。基本はここにコードを書いていきます。新規でExcelファイルを作成してもプロジェクトウィンドウ内に表示されていません。自分で挿入します。

標準モジュールの挿入

[2] シートモジュール

シートに付随するモジュールです。選択したシートのモジュール内にコードを書くと該当のシートに対して処理が実行されます。
ただ、当たり前ですがシートに付随しているためシートを削除すると消えます。シートに書いてるので…。気をつけてください。初心者はやりがちです。私もそうでした。何度か消してしまい書き直すことがありました。

シートモジュールの追加

ブックのシートを増やすとモジュールも連動して追加されます。

[3] ブックモジュール

ワークブックに付随するモジュールです。ブックに1つだけ存在していてモジュールを増やすことはできません。ブック(Excelファイル)に対して何か動作が行われたとき「ブックを開いたとき」「新しいシートを追加したとき」などに処理を実行させることができます。

何か動作が行われたことがきっかけで処理が実行されるため、操作する側からするとプログラムを実行してる感はあまりないかもしれません。処理が長い、PC重いとかあると話は別です。見えないと逆にイライラの元になることもあります。

[4] フォームモジュール

フォームに付随するモジュールです。入力フォームなど自分で作成して、そのフォームに対してコードを書くことができます。「ボタンを押したら処理を実行する」「チェックボックスがTRUEになったら処理を実行する」など動作をきっかけに処理を実行させることができます。

標準モジュール同様に自分で挿入します。挿入するとツールボックスと一緒に空のフォームがコードウィンドウに追加されます。

[5] クラスモジュール

クラスモジュールは他のモジュールとはちょっと違います。ただコードを書く場所であることに違いはありません。クラスモジュールを使いこなせるとコードがすっきりまとまり、メンテナンスもし易くなります。
が、ちょっと難しいので、最初は使わなくても、知らなくても問題ありません。また機会があれば詳しく説明したいと思います。




この記事が気に入ったらサポートをしてみませんか?