Share via


KeyDown、KeyUp イベント

ユーザーがキーを押して離すと、順番に発生します。 KeyDown は、ユーザーがキーを押したときに発生します。 KeyUp は、ユーザーがキーを解放するときに発生します。

構文

Private Subオブジェクト _KeyDown( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)
Private Subオブジェクト _KeyUp( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)

KeyDown イベントと KeyUp イベントの構文には、次の指定項目があります。

パーツ 説明
object 必須です。 有効なオブジェクト名です。
KeyCode 必須。 押されたキーまたは離されたキーのキー コードを表す整数です。
Shift 必須。 Shift キー、Ctrl キー、および Alt キーの状態です。

Settings

Shift の設定値を以下に示します。

定数 説明
fmShiftMask 1 Shift キーが押されました。
fmCtrlMask 2 Ctrl キーが押されました。
fmAltMask 4 Alt キーが押されました。

注釈

KeyDown イベントは、実行中のフォームまたはそのフォーム上のコントロールにフォーカスがある状態でキーを押したときに発生します。 キーを離すまで KeyDown イベントと KeyPress イベントが交互に発生し、キーを離すと KeyUp イベントが発生します。 フォーカスのあるフォームまたはコントロールが、すべてのキーストロークを受け取ります。 フォームがフォーカスを受け取ることができるのは、そのフォームにコントロールが配置されていないか、または、すべての可視コントロールが使用不可に設定されている場合だけです。

これらのイベントは、マクロの SendKeys アクションまたは Visual Basic の SendKeys ステートメント を使用して、フォームまたはコントロールにキーストロークを送信する場合にも発生します。

KeyDown イベントと KeyUp イベントは主に、次のキーを検出するために使います。

  • ファンクション キーなどの拡張キー。

  • Home、End、PageUp、PageDown、↑、↓、→、←、Tab などの移動キー。

  • 標準の補助キー (Shift、Ctrl、Alt) と他のキーの組み合わせ。

  • テンキーとキーボードの数字キー。

KeyDown イベントと KeyUp イベントは、次の状況では発生しません。

  • ユーザーは、 Default プロパティが True に設定されているコマンド ボタンを使用して、フォームで Enter キーを押 します

  • ユーザーは 、Cancel プロパティが True に設定されているコマンド ボタンを使用して、フォームで Esc キーを押 します

KeyDown イベントと KeyPress イベントは、ANSI キーを押したり送信したりすると発生します。 KeyUp イベントは、キーを押したり送信したりすることによってコントロールに対するイベントが発生した後に発生します。 キーストロークによってフォーカスが移動した場合は、移動前のコントロールに対して KeyDown イベントが発生し、移動後のコントロールに対して KeyPress イベントと KeyUp イベントが発生します。

キーボード関連イベントの順序は次のとおりです。

  1. KeyDown
  2. KeyPress
  3. KeyUp

注:

KeyDown イベントと KeyUp イベントは、フォームおよびフォームのコントロールにのみ適用されます。 ANSI 文字を解釈する (押したキーに対応する ANSI 文字セットの文字を確認する) には、KeyPress イベントを使います。

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。