イベントプロシージャの記述

広告

イベントとはコントロールに何か操作を行った時に発生するもので、各操作に対してそれぞれイベントが用意されています。例えばフォームに配置されているボタンに対してクリックした時には「Click」イベントが発生します。

このイベントが発生した時に行いたい処理を記述するのがイベントプロシージャです。

実際の例を見ながら確認していきます。まずフォームを1つ作成し、テキストボックスとボタンを1つずつ配置します。

イベントプロシージャ

フォーム上のボタンをダブルクリックして下さい。するとイベントに関する処理を記述するイベントプロシージャが表示されます。

イベントプロシージャ

イベントプロシージャはマクロから呼び出されるプロシージャと同じSubプロシージャです。ただし記述される場所はモジュールのコードウィンドウではなく、フォームのコードウィンドウになります。先頭に「Private」が付いているのは、他のモジュールからは呼び出せずフォームが含まれているモジュール内でのみ利用可能であることを示しています。

Private Sub CommandButton1_Click()

End Sub

通常のSubプロシージャがマクロや他のプロシージャから呼ばれるのに対して、イベントプロシージャはイベントが発生した時に呼び出されます。上記の場合は「CommandButton1」と言うボタンにて「Click」と言うイベントが発生した場合に呼び出されます。この「CommandButton1」はボタンについているコントロールの名前(プロパティ上ではオブジェクト名)になります。(※『コントロールの名前の設定』を参照して下さい)。

通常のプロシージャと同じく、イベントプロシージャの中にVBAのコードを記述することで、フォームのボタンがクリックされたら何かを行うというプログラムを記述することが出来ます。例えば次のように記述した場合、ボタンがクリックされたらセルA1に10と言う値を設定します。

Private Sub CommandButton1_Click()

    Dim range1 As Range

    Set range1 = Range("A1")
    range1.Value = 10

End Sub

イベントプロシージャを記述することによって、例えばシートに入力する値をフォームで入力してもらい、ボタンをクリックしたらシートに値を貼り付けるといった動作が可能になります。

( Written by Tatsuo Ikura )