Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


136 / 13645 ツリー ←次へ | 前へ→

【81843】素人ですいません papa 21/6/23(水) 21:39 質問[未読]
【81845】Re:素人ですいません 山内 21/6/24(木) 10:16 回答[未読]
【81846】Re:素人ですいません papa 21/6/24(木) 12:11 お礼[未読]

【81843】素人ですいません
質問  papa  - 21/6/23(水) 21:39 -

引用なし
パスワード
   只今 勉強中で 色々検索しながら組み立てています

Office2019 Windows10 の環境で
セルの例えばA1に値を入れエンターキーを押すとシート上に作成されたボタンがアクティブになりエンターキーを押すとボタンに設定されたマクロが実行される

このような事を実現させたいのですが

ご指南お願いいたします

【81845】Re:素人ですいません
回答  山内  - 21/6/24(木) 10:16 -

引用なし
パスワード
   選択ではなくフォーカスする場合フォームコントロールではなく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

【81846】Re:素人ですいません
お礼  papa  - 21/6/24(木) 12:11 -

引用なし
パスワード
   ▼山内 さん:
>選択ではなくフォーカスする場合フォームコントロールではなくActiveXコントロールじゃないとダメみたいなので注意

ありがとうございました
>ActiveXコントロールじゃないとダメみたいなので注意
動かなかった原因です

フォームコントロールで実行していました

感謝です 実現できました

136 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free