次の方法で共有


KeyboardEvent.KeyButtonState プロパティ (Visio)

マウス ボタンの状態と、キーボード イベントに関連付けられている Shift キーと Ctrl キーを返します。 読み取り専用です。

構文

KeyButtonState

KeyboardEvent オブジェクトを表す変数。

戻り値

Long

注釈

KeyButtonState に使用できる値は、Visio タイプ ライブラリの VisKeyButtonFlags で宣言されている次の表に示す値の組み合わせです。 たとえば、 KeyButtonState が 9 を返した場合、ユーザーが Ctrl キーを押しながらマウスの左ボタンをクリックしたことを示します。

定数
visKeyControl 8
visKeyShift 4
visMouseLeft 1
visMouseMiddle 16
visMouseRight 2

次のクラス モジュールは、アクティブなウィンドウでのマウス操作によって開始されたイベントを受信する KeyboardListener というシンク クラスを定義する方法を示しています。 このクラス モジュールでは、WithEvents キーワードを使用してオブジェクト変数 vsoWindow が宣言されています。 クラス モジュールには、KeyDown イベント、KeyPress イベント、および KeyUp イベント用のイベント ハンドラーも含まれます。

この例を実行するには、Microsoft Visual Basic for Applications (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 のサポートおよびフィードバックを参照してください。