【VBA】シートモジュールの使い方とそのメリット
Excel VBAには、標準モジュール以外にもシートモジュールと呼ばれるモジュールがあります。
この画像のSheet1(Sheet1)がシートモジュールです。
モジュールには標準モジュールやクラスモジュールなどさまざまなモジュールがありますが、その中でも「シートモジュール」は特に便利な存在です。
この記事では、シートモジュールの基本的な使い方と、そのメリットについて解説します。
1. シートモジュールの使い方
シートモジュールは、各ワークシートに専用のコードを書く場所を提供します。
具体的には、Excelのワークブック内の各シートに対して個別にモジュールが存在しており、シートに関連するイベントや操作を効率的に書くことができます。
シートモジュールを使用するには、VBAエディターで対象のシートをダブルクリックします。
すると、そのシートに関連するシートモジュールが表示され、標準モジュールと同じようにプログラムを記述することができるようになります。
2. メリット(シートオブジェクトを省略)
シートモジュールを使う最大のメリットの一つは、「シートオブジェクトを省略できる」という点です。
通常、標準モジュールでコードを書く場合、操作対象のシートを指定するためにシートオブジェクトを明示する必要があります。
しかし、シートモジュール内では、そのモジュールが紐付いているシートが自動的に対象となるため、シートを指定するコードが不要になります。
たとえば、標準モジュールでセルA1に値を入力する際には以下のようなコードが必要です。
Worksheets("Sheet1").Range("A1").Value = "Hello"
一方、シートモジュール内では、以下のようにシート名を省略してコードを書けます。
Range("A1").Value = "Hello"
これにより、コードがシンプルになり、可読性が向上します。
また、誤って別のシートを操作してしまうリスクも軽減されます。(標準モジュールではシートオブジェクトを省略するとアクティブシートに対して操作をします)
シートごとに特定の動作を管理する際には、シートモジュールを利用することでコードの記述量を減らし、保守性も高めることが可能です。
3. 便利な使い方(データの読み取りとアウトプットに活用)
ここまでシートモジュールの使い方とメリットを紹介しましたが、最後にその便利な使い方を紹介します。
シートモジュールは、データのインプットやアウトプットの時に使用すると非常に便利です。
基本的に、Excel VBAでは①シート上からデータを読み取る、②データの計算や変換をする、③結果をシート上にアウトプットする、の3つのステップで処理をします。
このうち、①と③は必ずシートでの処理となるためシートモジュールを利用すると、プログラムが見やすくなるし、シートの指定ミスを減らすことができます。
Sub Standard_Module()
シートモジュール名.データ読み取りプロシージャ
' ここでデータの計算や変換をする
シートモジュール名.アウトプットプロシージャ
End Sub
データの読み取りとアウトプットは標準モジュールに書かずに済むので、イメージとしてはこのようなプログラムになります。
このようにすると、標準モジュールはデータの計算や変換のみを書くこととなり、自然とプログラムがとてもすっきりと分かりやすくなってきます。
VBAのシートモジュールの基本的な使い方とそのメリットは以上となります。
シートモジュールを活用することで、より効率的にExcelの操作を自動化し、業務の改善につなげることができるので、ぜひシートモジュールの利用を検討してみてください。