|
選択ではなくフォーカスする場合フォームコントロールではなくActiveXコントロールじゃないとダメみたいなので注意
'標準モジュール
Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Integer
Function testkey() As Boolean 'エンターキーが押されたか判定する関数
Const keypressed = -32768
testkey = (GetAsyncKeyState(vbKeyReturn) And keypressed) = keypressed
End Function
Sub testmove() 'ボタンをフォーカスする
Worksheets("Sheet1").CommandButton1.Activate
End Sub
Sub testmsg() 'ボタンを押したときに実行するマクロ
MsgBox "成功"
End Sub
'ワークシートイベント
Private Sub CommandButton1_Click() 'ボタンをクリックしたときのイベント
Call testmsg
End Sub
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'ボタンをフォーカス中にキーを離したときのイベント
If KeyAscii = vbKeyReturn Then
CommandButton1_Click
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) 'ワークシートの値を変えたときのイベント
If Target = Worksheets("Sheet1").Range("A1") Then
If testkey Then
Call testmove
End If
End If
End Sub
|
|