Home  第一章 VBAを始める準備


8. モジュールとイベントについて


標準モジュールは、
ワークシートのように複数用意できることは分かったと思います。
感覚的には、ワークシートの Sheet1 や Sheet2 と同じでModule1 Module2 Module3… となります。


ワークシートのようにシートタブは表示されないので、
モジュールの選択は プロジェクトエクスプローラを利用します。


また、名前の変更は、プロパティのオブジェクト名を変更してやります。

 

 

モジュールの種類(プロジェクトエクスプローラで確認)
------------------------------------------------------------------------------------
ワークシートモジュール
 シートごとに用意されています。
今「セルがアクティブになった」
今「セルが移動した」
今「セルの内容が変更された」 等と
Excelはシート上の動作(イベント)発生を常に監視しています。
このイベントの発生を利用してコードを記述できるモジュールです。

 

ワークシートモジュールの表示方法:

1:プロジェクトウィンドウで目的のシートをダブルクリックします。

 

2:モジュールが表示されるので、左のコンボボックスの値を「Worksheet」に変更します。



変更と同時に必ず、

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

と表示されますが、

ここには「セルが移動した時」に合わせて実行されるコードを記述します。

 

 

3:イベントの種類は右のコンボボックから選択します。



例えば「Change」を選択すると

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub


と表示されます。

ここには「セルの内容が変更された時」に実行するコードを記述します。

 

(ByVal Target As Range)のTargetは、
イベントが発生したセルをコード内で 扱えるようにするための変数です。

例)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "選択したセル番地は " & Target.Address
End Sub

 


ワークブックモジュール   ブック全体のイベントに対して実行したいコードを記述します。
                プロジェクトのウィンドウで表示されている「ThisWorkbook」です。

標準モジュール              自動マクロやメインコードを記述します

フォームモジュール         独自のフォームを作成するときに使用

クラスモジュール              新しいオブジェクトを作成するときに使用
                                    (バリバリのプログラマーが使います?)
------------------------------------------------------------------------------------

One Point

イベントについて
 プログラム上でイベントとは、何らかの動作が発生したことを意味します。
 Excelでは、
  セルが移動したとき
  セルの内容が書き換わったとき
  セルをクリックしたとき
  シートを切り替えたときなど

 「いまその動作が行われました」という認識が行われます。

 この動作の認識(イベント)を利用することにより プログラムの幅が広がります。