Application.KeyDown イベント (Visio)

キーボードのキーを押したときに発生します。

構文

式。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 のサポートおよびフィードバックを参照してください。