ユーザーフォームのイベントの説明と使い方についてご説明します。
ユーザーフォームやコントロールは作成、設置した場合に基本的に処理や操作はイベントを使用します。
ユーザーフォームにどのようなイベントがあるか、そのイベントを使う方法について説明します。
1.ユーザーフォームのイベントの種類
ユーザーフォームのイベントの種類一覧です。
下記イベントの中から実行のトリガー(きっかけ)となるイベントを選んで、その選択したらイベントプロシージャ内に、実行したい処理を記述します。
ユーザーフォームイベント一覧
イベント名 | 説明 |
Activate | ユーザーフォームがアクティブウィンドウになったときに実行されます。 |
AddControl | 「Addメソッド」でコントロールが追加されたときに実行されます。 |
BeforeDragOver | ユーザーフォームをドラッグ&ドロップしたときに実行されます。 |
BeforeDropOrPaste | ユーザーフォームにデータをドロップもしくは貼り付けるときに実行されます。 |
Click | ユーザーフォームをクリックしたときに実行されます。 |
DblClick | ユーザーフォームをダブルクリックしたときに実行されます。 |
Deactivate | ユーザーフォームが非アクティブになったときに実行されます。 |
Error | エラーを検出した際、エラー情報を呼び出し元プログラムに返すことができないとき実行されます。 |
Initialize | ユーザーフォームが表示される直前に実行されます。 |
KeyDown | キーを押したタイミングに実行されます。 |
KeyPress | キーが押されたあとに実行されます。 |
KeyUp | 押されたキーが戻るときに実行されます。 |
Layout | ユーザーフォームに配置されたコントロールが移動したときに実行されます。 |
MouseDown | ユーザーフォーム上でマウスボタンが押されたときに実行されます。 |
MouseMove | ユーザーフォーム上にマウスポインターが移動したときに実行されます。 |
MouseUp | ユーザーフォーム上でマウスボタンをクリックしてボタンを離したときに実行されます。 |
QueryClose | ユーザーフォームが閉じる直前に発生に実行されます。 |
RemoveControl | ユーザーフォームに設置されたコントロールが削除されたときに実行されます。 |
Resize | ユーザーフォームのサイズが変更されたとき発生に実行されます。 |
Scroll | ユーザーフォーム上のスクロールボックスに変更があったときに実行されます。 |
Terminate | ユーザーフォームが閉じられた後に実行されます。 |
Zoom | ユーザーフォームの表示倍率が変更されたときに実行されます。 |
3.イベントの使い方
コードを記述する場所
イベントの処理を記述するモジュールは「フォームモジュール」になります。
そして、イベントの書かれたプロシージャを「イベントプロシージャ」と言います。
作成したユーザーフォーム1つ1つにフォームモジュールがあり、イベント処理を組み込みたいユーザーフォームのフォームモジュールに記述します。
詳細な処理コードは標準モジュールなどに記述しても問題ありませんが、トリガーが発生して実行されるのはあくまでイベントプロシージャ内の処理なので、他で書かれた内容を呼び出す必要があります。
フォームモジュールの開き方
次はフォームモジュールの表示方法です。
フォームモジュールは作成したユーザーフォームごとに分かれています。
イベントを記述したいユーザーフォームを選択して、開きますが開く方法はいくつかあります。
VBAProject内のユーザーフォームを右クリックしてメニューを開き「コードの表示」を選択する。
フォームモジュールを開いて右クリックでメニューを開き「コードの表示」を選択、もしくはユーザーフォームを開いてWクリックで表示します。
イベントを選択する方法
記述場所の次はイベントの選択方法です。
イベントを選択するのも「フォームモジュール」になります。
フォームモジュールを開くと次のように「UserForm」と「Click」が自動的に生成されます。
もしClikcイベントではなく、他のイベントを選択したい場合は、「Click」部分のリストを表示して別のイベントを選択します。
イベントプロシージャ名
イベントを選択すると、イベントプロシージャ名は自動的に生成されます。
その中に処理をしたいコードを記述します。
各イベントが実行される挙動はイベントの種類の一覧をご覧ください。