第20回.テキストボックスの各種イベント
ユーザーフォーム入門として基礎から解説します。
ユーザーフォームで最も良く使われる、テキストボックスのイベントの一覧と、
キー入力と、コントロール間の移動時のイベント発生順について記載します。
その操作により発生するイベントと、その発生順序を理解しておくことが必要です。
テキストボックスのイベント一覧
イベント | 構文 | 説明 |
AfterUpdate | Private Sub TextBox1_AfterUpdate() | コントロールのデータがユーザー インターフェイスを介して変更された後に発生します。 |
BeforeDragOver | Private Sub TextBox1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer) | ドラッグ アンド ドロップ操作の実行中に発生します。 |
BeforeDropOrPaste | Private Sub TextBox1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, 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) | ユーザーがオブジェクトにデータをドロップするか貼り付けようとすると発生します。 |
BeforeUpdate | Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) | コントロールのデータが変更される前に発生します。 |
Change | Private Sub TextBox1_Change() | Value プロパティが変更されたときに発生します。 |
DblClick | Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) | ユーザーがオブジェクトをポイントし、マウス ボタンを 2 回クリックすると発生します。 |
DropButtonClick | Private Sub TextBox1_DropButtonClick() | ドロップダウン リストが表示または非表示になると常に発生します。 テキストボックスがアクティブな状態でF4押下で発生。 |
Enter | Private Sub TextBox1_Enter() | コントロールが、同じフォームの他のコントロールから実際にフォーカスを受け取る前に発生します。 |
Error | Private Sub TextBox1_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) | コントロールがエラーを検出し、エラー情報を呼び出し元プログラムに返すことができないときに発生します。 |
Exit | Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) | コントロールがフォーカスを失い、そのフォーカスが同じフォームにある他のコントロールに移動する直前に発生します。 |
KeyDown | Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) | ユーザーがキーを押すと発生します。 |
KeyPress | Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) | ユーザーが ANSI キーを押すと発生します。 |
KeyUp | Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) | ユーザーがキーを離すと発生します。 |
MouseDown | Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) | ユーザーがマウス ボタンを押したときに発生します。 |
MouseMove | Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) | ユーザーがマウスを動かしたときに発生します。 |
MouseUp | Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) | ユーザーがマウス ボタンを離したときに発生します。 |
構文を掲載していますが、
実際にプロシージャーの作成では、以下のイベント選択で自動挿入して作成します。
イベントを選択すると、対応するイベントプロシージャーが自動挿入されます。
オブジェクトを選択しただけで、Changeイベントが作成されてしまいますが、使わない時はChangeのプロシージャーは削除してください。
イベントの発生順序
そして、複数発生するイベントには発生順があります。
以下は、テキストボックスを選択し文字を入力した後にEnterを押した場合のイベント発生順です。
以下、キー入力回数分繰り返される。
KeyDown ・・・ 1文字目入力
KeyPress
Change
KeyUp
KeyDown ・・・ 2文字目入力
KeyPress
Change
KeyUp
KeyDown ・・・ 3文字目入力
KeyPress
Change
KeyUp
KeyDown
・・・
KeyDown ・・・ Enterキー押下
BeforeUpdate
AfterUpdate
Exit ・・・ テキストボックスを離れる
Enter ・・・ 移動先のコントロールのEnter
KeyDown と KeyPress の違いについて
引数で受け取るものは、KeyCode です。
Enterキー、Shiftキー、Functionキー等の制御文字の入力では発生しません。
引数で受け取るものは、KeyAscii です。
つまり、通常の文字のみ判定するなら、KeyPressで良いが、
その他の制御キーも判定する場合は、KeyDownを使います。
イベントを自在に制御するには、それなりの経験が必要になります。
使えるイベントを一つずつ増やしていくようにして下さい。
同じテーマ「ユーザーフォーム入門」の記事
第17回.Enterキーで次のコントロールに移動する
第18回.2段階のコンボボックス
第19回.数値専用のテキストボックス
第20回.テキストボックスの各種イベント
第21回.ユーザーフォームの各種イベント
第22回.コントロールの動的作成
第23回.イベントプロシージャーの共通化
第24回.イベントプロシージャーの共通化(Enter,Exit)
第25回.簡易音楽プレーヤーの作成
第26回.プログレスバーを自作する
第27回.インクリメンタルサーチの実装
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.条件分岐(Select Case)|VBA入門
9.メッセージボックス(MsgBox関数)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
- ホーム
- マクロVBA応用編
- ユーザーフォーム入門
- テキストボックスの各種イベント
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。