Excelユーザーフォーム入門
第21回.ユーザーフォームの各種イベント

Excelマクロのユーザーフォームの基礎、エクセルVBAの入門解説
最終更新日:2018-03-13

第21回.ユーザーフォームの各種イベント


ユーザーフォームに対する操作(アクション)で発生するイベントの一覧です、


ユーザーフォームそのものの制御をする場合は、このイベントを利用します。


ユーザーフォームのイベント一覧

イベント 構文 説明
Activate UserForm_Activate() Activate イベントは、オブジェクトがアクティブなウィンドウになったときに発生します。Deactivate イベントは、オブジェクトがアクティブなウィンドウではなくなったときに発生します。
AddControl UserForm_AddControl(ByVal Control As MSForms.Control) フォーム、 Frame 、または MultiPage の Page にコントロールが追加されたときに発生します。
BeforeDragOver UserForm_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal State As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer) ドラッグ アンド ドロップ操作の実行中に発生します。
BeforeDropOrPaste UserForm_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Control As MSForms.Control, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer) ユーザーがオブジェクトにデータをドロップするか貼り付けようとすると発生します。
Click UserForm_Click() クリックされたときに発生します。
DblClick UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) DblClick イベントは、マウス ポインターをオブジェクトの上に置き、システムで設定されているダブルクリックの間隔内に、マウスの左ボタンを押してから離す動作を 2 回続けて行ったときに発生します。
Deactivate UserForm_Deactivate() フォームがフォーカスを失い、アクティブでなくなると発生します。
Error UserForm_Error(ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean) Error イベントは、フォームやレポートにフォーカスがあるときに、Access で実行時エラーが検出されたときに発生します。
Initialize UserForm_Initialize() UserForm が読み込まれた後で表示される前に発生します。
KeyDown UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) ユーザーがキーを押すと発生します。
KeyPress UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) ユーザーが ANSI キーを押すと発生します。
KeyUp UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) ユーザーがキーを離すと発生します。
Layout UserForm_Layout() 子コントロールの位置を変更する必要があるときに発生します。
MouseDown UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) ユーザーがマウス ボタンを押したときに発生します。
MouseMove UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) ユーザーがマウスを動かしたときに発生します。
MouseUp UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) ユーザーがマウス ボタンを離したときに発生します。
QueryClose UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) UserForm が閉じる前に発生します。
RemoveControl UserForm_RemoveControl(ByVal Control As MSForms.Control) コントロールが コンテナーから削除されたときに発生します。
Resize UserForm_Resize() フォームを開いたとき、およびフォームのサイズが変更されるたびに、 Resizeイベントが発生します。
Scroll UserForm_Scroll(ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle) マウスまたはキーボードの操作でスクロール ボックスが移動したときに発生します。
Terminate UserForm_Terminate() オブジェクトを参照するすべての 変数が Nothing に設定されて、オブジェクトのインスタンスへの参照がメモリからすべて削除されるか、オブジェクトへの最後の参照が スコープ外になったときに発生します。
Zoom UserForm_Zoom(Percent As Integer) Zoom プロパティの値が変更されたときに発生します。


太字のイベントが良く使われるイベントになります。
それ以外は、特殊な機能を実装したい場合に限られます。



イベントの発生順について

ユーザーフォームを表示する時
以下の順でイベントが発生します。

UserForm_Initialize

UserForm_Activate


ユーザーフォームを閉じる時
以下の順でイベントが発生します。

UserForm_QueryClose

UserForm_Terminate


QueryCloseの引数

UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

ユーザー フォームに未完了のタスクが含まれていないかどうかを確認するために使用されます。

引数 説明
cancel 整数型 (Integer) の値を指定します。
この引数をTrueに設定すると、読み込み済みのすべてのユーザー フォームで QueryClose イベントが停止され、
UserFormとアプリケーションを閉じられなくなります。
closemode QueryClose イベントの原因を示す値または定数です。

CloseModeの定数
定数 内容
vbFormControlMenu 0 ユーザー フォームのコントロール メニューの [閉じる] がクリックされました。
vbFormCode 1 コードから Unload ステートメントが起動されました。
vbAppWindows 2 現在の Microsoft Windows のオペレーティング環境セッションが終了しました。
vbAppTaskManager 3 Windows のタスク マネージャによって、アプリケーションが閉じられました。





同じテーマ「Excelユーザーフォーム入門」の記事

コンボボックス(ComboBox)の追加
リストボックス(ListBox)の追加
チェックボックス(CheckBox)の追加
オプションボタン(OptionButton)の追加
ここまでの整理
アクティブコントロールに色を付ける
Enterキーで次のコントロールに移動する
2段階コンボボックス
テキストボックス数値編集
テキストボックスの各種イベント
ユーザーフォームの各種イベント

新着記事NEW ・・・新着記事一覧を見る

エクセルの日付と時刻のまとめ|エクセル関数超技(3月6日)
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)
Excelアドインの作成と登録について|VBA技術解説(2月3日)
参照設定、CreateObject、オブジェクト式の一覧|VBA技術解説(1月20日)
VBAでファイルを規定のアプリで開く方法|VBA技術解説(1月20日)
ドキュメントプロパティ(BuiltinDocumentProperties,CustomDocumentProperties)|VBA技術解説(1月19日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.とにかく書いて見よう(Sub,End Sub)|VBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.セルに文字を入れるとは(Range,Value)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • ユーザーフォームの各種イベント

    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。






    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ