1-30 フォームの全イベントを確認するユーザーフォーム 2021.11.16
次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」
イベント名 |
イベント発生のタイミング |
Activate |
フォームがアクティブになった時に発生します。 |
AddControl |
フォームにコントロールを挿入する時に発生します。 |
BeforeDragOver |
フォーム上でドラッグ操作を行った時に発生します。 |
BeforeDropOrPaste |
フォームにデータオブジェクトをドロップするか、貼り付ける前に発生します。 |
Click |
フォームをマウスでクリックした時に発生します。 |
DblClick |
フォームをマウスでダブルクリックした時に発生します。 |
Deactivate |
フォームがが非アクティブになった時に発生します。 |
Error |
フォームがエラーを検出し、エラー情報を呼び出し元プログラムに返せない時に発生します。 |
Initialize |
フォームのインスタンスが生成された時に発生します。 |
KeyDown |
キーを押すと発生します。 |
KeyPress |
ANSIコードに対応するキーが押されると発生します。 |
KeyUp |
押されたキーを離すと発生します。 |
Layout |
フォーム上のコントロールが移動した時に発生します。 |
MouseDown |
マウスボタンを押した時に発生します。 |
MouseMove |
マウスポインタを動かすと発生します。 |
MouseUp |
押されたマウスボタンを離すと発生します。 |
QueryClose |
フォームを閉じる直前に発生します。 |
RemoveControl |
フォーム上のコントロールを削除する時に発生します。 |
Resize |
フォームのサイズが変更される時に発生します。 |
Scroll |
フォーム上に設置されたスクロールバーを操作した時に発生します。 |
Terminate |
フォームのインスタンスが破棄される時に発生します。 |
Zoom |
フォームの表示倍率に変化があった時に発生します。 |
コラム③ イベントとは?
イベントとは「ボタンがクリックされた」「キーボードが押された」等、何らかの条件を満たしたときに、自動で発生するプログラムのことを指します。
このような、イベントによって自動発生するプログラムの動作方法を、イベントドリブン(イベント駆動)と言います。
ユーザーフォームでは、フォームだけでなく、フォーム上に配置するコントロールに、それぞれのタイプにあわせたイベントが存在します。
フォームで何らかの処理を行う場合は、イベントをトリガーとしてマクロを実行します。
イベントの挿入
イベントの挿入はVBEの画面で行います。
オブジェクトが表示されている状態で、イベントを挿入したいフォーム、またはコントロールをダブルクリックします。
ダブルクリックをするとコードの表示画面に切り替わります。
そしてクリックしたフォーム、またはコントロールのデフォルトのイベントが自動で挿入されます。
デフォルトのイベントとは異なるイベントを利用する場合は、ドロップダウンリストより選択します。
リストから選択すると、選択したイベントが新たに挿入されます。
必要のないイベントは消去して構いません。
別のコントロールのイベントを挿入する場合は、オブジェクトとイベントをドロップダウンリストから選択します。
コラム④ イベントの順番
イベントの中には、Initializeイベント、Activateイベントのように、連続で発生するものが存在します。
イベントの順番を知っておくことは、エラー回避やスムーズな仕組みの構成には欠かせません。
ここではイベントの順番を確認します。
なおユーザーフォームのイベントを基にしますが、コントロールに同じイベントがある場合は、同じ順番になります。
フォーム起動時
① Initializeイベント インスタンスが生成されたら発生
② Layoutイベント フォームのレイアウトや位置に変更があったら発生
②’(フレームコントロールやマルチページコントロールのLayoutイベント)
③ Activateイベント フォームがアクティブなったら発生
フォームを閉じる
① QueryCloseイベント フォームを閉じる直前に発生
② Terminateイベント フォームのインスタンスが破棄されるときに発生
フォームのサイズを変更
① Resizeイベント フォームのサイズが変更される時に発生
② Layoutイベント フォームのレイアウトや位置に変更があったら発生
フォーム上でマウスを左クリック
① MouseDownイベント フォーム上でマウスボタンが押された時に発生
② MouseUpイベント フォーム上で押されているマウスボタンを離した時に発生
③ Clickイベント フォームをクリックした時に発生
フォーム上でキーを押す
① KeyDownイベント フォーム上でキーが押された時に発生
② KeyPressイベント フォーム上でANSIに対応したキーが押されたときに発生
③ KeyUpイベント フォーム上で押されているキーが離された時に発生
その他
Resizeイベントは、フォームの幅や高さに変化があった場合に発生します。
なんらかのイベント途中であってもサイズの変化があると、Resizeイベントに移ります。
例えば、ZoomイベントでWidthプロパティとHeightプロパティの値を変更した場合、それぞれのプロパティ設定毎にリサイズイベントが発生するため、結果としてResizeイベントは2回実行されます。
【例】
①フォームをクリックするとZoomプロパティに120が代入(倍率120%)
②Zoomイベントが発生 イベント内でフォームの幅と高さを調整
③(Zoomイベントの途中であっても)フォームのサイズが変更の度にResizeイベントが発生
書籍紹介140以上のサンプルファイル付き!
知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。
■ 購入:amazon