ユーザーフォームのコンボボックスのイベント一覧と使い方についてご説明します。
コンボボックスはリスト機能を持ったテキストボックスです。
文字列を入力したり、入力された文字列を取得もできます。
また、登録されたリストを選択して表示したり、入力された値をリストに登録が可能です。
コンボボックス自体は単体でもコントロールとして十分に活用できますが、イベントと組み合わせる事でより複雑な処理も可能となります。
コンボボックスの追加や、リストの追加方法については下記記事をご覧ください。
- コンボボックスの追加とリスト作成、詳細設定の方法
- コンボボックスのリストの追加と削除する方法
- 複数(2つ)のコンボボックスに連動するリストを登録する
- 複数(3つ以上)のコンボボックスに連動するリストを登録する
1.コンボボックスのイベント一覧
コンボボックスのイベント一覧と説明です。
下記イベントの中から実行のトリガー(きっかけ)となるイベントを選んで、その選択したらイベントプロシージャ内に、実行したい処理を記述します。
コンボボックスのイベント一覧
赤字のイベントは下記「イベントの引数と定数一覧」に説明があります。
イベント名 | 説明 |
AfterUpdate | コンボボックスのデータが更新された直後に実行されます。 |
BeforeDragOver | ドラッグ&ドロップの操作中に実行されます。 |
BeforeDropOrPaste | コンボボックスにデータをドロップもしくは、 貼り付けるときに実行されます。 |
BeforeUpdate | コンボボックスのデータが更新される直前に実行されます。 |
Change | コンボボックスのValueプロパティが変更されたら実行されます。 |
Click | コンボボックスのリストをクリックしたら実行されます。 |
DblClick | コンボボックスをダブルクリックしたら実行されます。 |
DropButtonClick | ドロップダウンリストが表示または非表示になったときに実行されます。 |
Enter | コンボボックスが同じフォームの別コントロールから、 フォーカスを受け取る前に実行されます。 |
Error | コンボボックスがエラーを呼び出し元プログラムに 返すことができないときに実行されます。 |
Exit | コンボボックスがフォーカスを失い同じフォームの別コントロールに 移動する前に実行されます。 |
KeyDown | キーを押すと実行されます。 |
KeyPress | ANSI を押すと実行されます。 |
KeyUp | 押したキーが離されたときに実行されます。 |
MouseDown | コンボボックス上でマウスボタンがクリックされたときに実行されます。 |
MouseMove | コンボボックス上にマウスポインターが移動したときに実行されます。 |
MouseUp | コンボボックス上でマウスボタンを離したときに実行されます。 |
イベントの引数と定数一覧
引数のあるイベントの引数と定数の説明です。
BeforeDragOverの引数と定数
引数名 | 説明 |
Cancel | イベントのステータスを指定します。 Falseは、コントロールがイベントを処理することを示します(既定)。 Trueは、アプリケーションがイベントを処理することを示します。 |
Data | ドラッグ&ドロップ操作でドラッグされたデータを返します。 |
X | コントロールの水平位置をポイント単位で返します。 |
Y | コントロールの垂直位置をポイント単位で返します。 |
DragState | ドラッグされているデータの遷移状態を返します。 |
Effect | ドロップソースでサポートされる操作を指定します。 |
Shift | Shiftキー、Ctrlキー、およびAltキーの状態を指定します。 |
DragStateの定数一覧
定数名 | 値 | 説明 |
fmDragStateEnter | 0 | マウスポインターはターゲットの範囲の中にあります。 |
fmDragStateLeave | 1 | マウスポインターはターゲットの範囲の外にあります。 |
fmDragStateOver | 2 | マウスポインターは新しい位置にありますが、 同じターゲットの範囲の中にあります。 |
Effectの定数一覧
定数名 | 値 | 説明 |
fmDropEffectNone | 0 | ドロップソースをドロップターゲットにコピーも移動もしません。 |
fmdropeffectcopy | 1 | ドロップソースをドロップターゲットにコピーします。 |
fmdropeffectmove | 2 | ドロップソースをドロップターゲットに移動します。 |
fmDropEffectCopyOrMove | 3 | ドロップソースをドロップターゲットにコピーまたは移動します。 |
Shiftの定数一覧
定数名 | 値 | 説明 |
fmShiftMask | 1 | Shiftキーが押されました。 |
fmCtrlMask | 2 | Ctrlキーが押されました。 |
fmaltMask | 4 | Altキーが押されました。 |
BeforeDropOrPasteの引数と定数
引数名 | 説明 |
Cancel | イベントのステータスを指定します。 Falseは、コントロールがイベントを処理することを示します(既定)。 Trueは、アプリケーションがイベントを処理することを示します。 |
Action | 現在のキーボード設定に基づく、保留中のドラッグアンドドロップ操作の結果を示します。 |
Data | ドラッグ&ドロップ操作でドラッグされたデータを返します。 |
X | コントロールの水平位置をポイント単位で返します。 |
Y | コントロールの垂直位置をポイント単位で返します。 |
Effect | ドロップソースでサポートされる操作を指定します。 |
Shift | Shiftキー、Ctrlキー、およびAltキーの状態を指定します。 |
Actionの定数一覧
定数名 | 値 | 説明 |
fmActionPaste | 2 | 選択されているオブジェクトをドロップターゲットに貼り付けます。 |
fmActionDragDrop | 3 | ユーザーがオブジェクトをソースからドロップターゲットにドラッグして、 ドロップターゲットにドロップしたことを示します。 |
Effectの定数一覧
定数名 | 値 | 説明 |
fmDropEffectNone | 0 | ドロップソースをドロップターゲットにコピーも移動もしません。 |
fmdropeffectcopy | 1 | ドロップソースをドロップターゲットにコピーします。 |
fmdropeffectmove | 2 | ドロップソースをドロップターゲットに移動します。 |
fmDropEffectCopyOrMove | 3 | ドロップソースをドロップターゲットにコピーまたは移動します。 |
Shiftの定数一覧
定数名 | 値 | 説明 |
fmShiftMask | 1 | Shiftキーが押されました。 |
fmCtrlMask | 2 | Ctrlキーが押されました。 |
fmaltMask | 4 | Altキーが押されました。 |
BeforeUpdateの引数
引数名 | 説明 |
Cancel | イベントのステータスを指定します。 Falseは、コントロールがイベントを処理することを示します(既定)。 Trueは、アプリケーションがイベントを処理することを示します。 |
DblClickの引数
引数名 | 説明 |
Cancel | イベントのステータスを指定します。 Falseは、コントロールがイベントを処理することを示します(既定)。 Trueは、アプリケーションがイベントを処理することを示します。 |
Errorの引数
引数名 | 説明 |
Number | コントロールがエラーの識別に使用する一意の値を指定します。 |
Description | エラーの説明です。 |
SCode | エラーのOLEステータスコードを指定します。 |
Source | イベントを開始したコントロールを識別する文字列。 |
HelpFile | エラーを説明しているヘルプファイルの完全修飾パス名を指定します。 |
HelpContext | エラーの説明が含まれるヘルプファイルトピックのコンテキストIDを指定します。 |
CancelDisplay | メッセージボックスにエラー文字列を表示するかどうかを指定します。 |
Exitの引数
引数名 | 説明 |
Cancel | イベントのステータスを指定します。 Falseは、コントロールがイベントを処理することを示します(既定)。 Trueは、アプリケーションがイベントを処理することを示します。 |
KeyDownの引数と定数
引数名 | 説明 |
KeyCode | コントロールがフォーカスされた状態で押されたキーを返します。 |
Shift | Shiftキー、Ctrlキー、およびAltキーの状態を返します。 |
Shiftの定数一覧
定数名 | 値 | 説明 |
fmShiftMask | 1 | Shiftキーが押されました。 |
fmCtrlMask | 2 | Ctrlキーが押されました。 |
fmaltMask | 4 | Altキーが押されました。 |
KeyPressの引数
引数名 | 説明 |
KeyAscii | 数値で表されるANSIキーコードを返します。 引数KeyAsciiに0を設定すると、キーストロークがキャンセルされ、 オブジェクトはキーが押されたことを認識しません。 |
KeyUpの引数と定数
引数名 | 説明 |
KeyCode | コントロールがフォーカスされた状態で押されたキーを返します。 |
Shift | Shiftキー、Ctrlキー、およびAltキーの状態を返します。 |
Shiftの定数一覧
定数名 | 値 | 説明 |
fmShiftMask | 1 | Shiftキーが押されました。 |
fmCtrlMask | 2 | Ctrlキーが押されました。 |
fmaltMask | 4 | Altキーが押されました。 |
MouseDownの引数
引数名 | 説明 |
Button | マウスの押されたボタンを整数で返します。 1:左ボタン 2:右ボタン 3:中央ボタン |
Shift | マウスが押されたときに一緒にShiftキー、Ctrlキー、Altキーが押された場合は整数で返します。 0:押されていない 1:Shiftキー 2:Ctrlキー 4:Altキー |
X | マウスの水平位置をポイント単位で返します。 |
Y | マウスの垂直位置をポイント単位で返します。 |
MouseMoveの引数
引数名 | 説明 |
Button | マウスの押されたボタンを整数で返します。 1:左ボタン 2:右ボタン 3:中央ボタン |
Shift | マウスが押されたときに一緒にShiftキー、Ctrlキー、Altキーが押された場合は整数で返します。 0:押されていない 1:Shiftキー 2:Ctrlキー 4:Altキー |
X | マウスの水平位置をポイント単位で返します。 |
Y | マウスの垂直位置をポイント単位で返します。 |
MouseUpの引数
引数名 | 説明 |
Button | マウスの押されたボタンを整数で返します。 1:左ボタン 2:右ボタン 3:中央ボタン |
Shift | マウスが押されたときに一緒にShiftキー、Ctrlキー、Altキーが押された場合は整数で返します。 0:押されていない 1:Shiftキー 2:Ctrlキー 4:Altキー |
X | マウスの水平位置をポイント単位で返します。 |
Y | マウスの垂直位置をポイント単位で返します。 |
2.イベントの作成方法
コードを記述する場所
イベントの処理を記述するモジュールは対象のコントロールが設置されている「フォームモジュール」になります。
そして、イベントの書かれたプロシージャを「イベントプロシージャ」と言います。
作成したユーザーフォーム1つ1つにフォームモジュールがあり、イベント処理を組み込みたいコントロールのあるユーザーフォームのフォームモジュールに記述します。
詳細な処理コードは標準モジュールなどに記述しても問題ありませんが、トリガーが発生して実行されるのはあくまでイベントプロシージャ内の処理なので、他で書かれた内容を呼び出す必要があります。
フォームモジュールの開き方
次はフォームモジュールの表示方法です。
フォームモジュールは作成したユーザーフォームごとに分かれています。
イベントを記述したいユーザーフォームを選択して、開きますが開く方法はいくつかあります。
VBAProject内のユーザーフォームを右クリックしてメニューを開き「コードの表示」を選択する。
対象のコントロールをWクリックもしくは、「コードの表示」で開く事も出来ます。
イベントを選択する方法
記述場所の次はイベントの選択方法です。
イベントを選択するのも「フォームモジュール」になります。
コントロールをWクリック、もしくはコードの表示で開くと、次のように「ComboBox1」の「Change」イベントが自動的に生成されます。
もしChangeイベントではなく、他のイベントを選択したい場合は、「Change」部分のリストを表示して別のイベントを選択します。
イベントプロシージャ名
イベントを選択すると、イベントプロシージャ名は自動的に生成されます。
その中に処理をしたいコードを記述します。
各イベントが実行される挙動はイベントの種類の一覧をご覧ください。