キーボードのキーを押したときに発生します。
構文
式。KeyDown (KeyCode、 KeyButtonState、 CancelDefault)
expressionApplication オブジェクトを 表す変数。
パラメーター
| 名前 | 必須 / オプション | データ型 | 説明 |
|---|---|---|---|
| KeyCode | 必須 | Long | 押されたキーです。 設定できる値はキー コード定数で宣言します。 |
| KeyButtonState | 必須 | Long | イベントの Shift キーと Ctrl キーの状態。 VisKeyButtonFlags で宣言されている値の組み合わせにすることができます。 たとえば、 KeyButtonState が 12 を返す場合は、ユーザーが Shift キーと Ctrl キーの両方を押したことを示します。 |
| CancelDefault | 必須 | ブール型 (Boolean) | Microsoft Visio がこのイベントから受け取ったメッセージを処理する必要がある場合は False、それ以外の場合は True です。 |
注釈
CancelDefault を True に設定すると、マウス ボタンがクリックされたときに受け取ったメッセージは処理されません。
他の一部の Visio イベントとは異なり、 KeyDown にはクエリ というプレフィックスがありませんが、クエリ イベントであることに変わりはありません。 つまり、CancelDefault を True に設定するか、VisEventProc メソッドを使用してイベントを処理している場合は True を返すことによって、KeyDown によって送信されたメッセージの処理を取り消すことができます。 詳細については、 VisEventProc メソッドとクエリ イベント ( たとえば、QueryCancelSuspend イベント) のトピックを参照してください。
注:
Ctrl+C などのアクセラレータ キーの組み合わせを押しても、 KeyDown イベントは発生しません。
VBA を使用している場合、このトピックの構文を使用して、イベントを一般的な方法で効率的に処理できます。
独自の Event オブジェクトを作成する場合は、 Add または AddAdvise メソッドを使用します。
アドオンを実行する Event オブジェクトを作成するには、EventList コレクションに対して Add メソッドを使用します。
通知を受け取る Event オブジェクトを作成するには、AddAdvise メソッドを使用します。
作成するイベントのイベント コードについては、「イベント コード」を参照してください。
例
このクラス モジュールでは、アクティブなウィンドウでキーボード アクションによって発生したイベントをリッスンする KeyboardListener と呼ばれる同期クラスを定義する方法を示します。 このクラス モジュールでは、WithEvents キーワードを使用してオブジェクト変数 vsoWindow が宣言されています。 クラス モジュールには、KeyDown イベント、KeyPress イベント、および KeyUp イベント用のイベント ハンドラーも含まれます。
この例を実行するには、VBA プロジェクトに新しいクラス モジュールを挿入し、 KeyboardListener という名前を付けて、モジュールに次のコードを挿入します。
Dim WithEvents vsoWindow As Visio.Window
Private Sub Class_Initialize()
Set vsoWindow = ActiveWindow
End Sub
Private Sub Class_Terminate()
Set vsoWindow = Nothing
End Sub
Private Sub vsoWindow_KeyDown(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean)
Debug.Print "KeyCode is "; KeyCode
Debug.Print "KeyButtonState is" ; KeyButtonState
End Sub
Private Sub vsoWindow_KeyPress(ByVal KeyAscii As Long, CancelDefault As Boolean)
Debug.Print "KeyAscii value is "; KeyAscii
End Sub
Private Sub vsoWindow_KeyUp(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean)
Debug.Print "KeyCode is "; KeyCode
Debug.Print "KeyButtonState is" ; KeyButtonState
End Sub
次に、次のコードを ThisDocument プロジェクトに挿入します。
Dim myKeyboardListener As KeyboardListener
Private Sub Document_DocumentSaved(ByVal doc As IVDocument)
Set myKeyboardListener = New KeyboardListener
End Sub
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument)
Set myKeyboardListener = Nothing
End Sub
ドキュメントを保存してクラスを初期化し、任意のキーを押して KeyDown イベントを発生させます。 ハンドラーは、イベントを起動するために押されたキーのコードと、イベント発生時の Shift キーと Ctrl キーの状態を出力します。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。