Excel VBA質問箱 IV

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

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


23691 / 76732 ←次へ | 前へ→

【58403】Re:シート上のコマンドボタンをEnterキーで
発言  Yuki  - 08/10/23(木) 15:54 -

引用なし
パスワード
   ▼yuka さん:
>ワークシート上にある、コマンドボタンにフォーカスを移してEnterキーを押せばボタン処理が実行するようにしたいのですが、うまくいきません。
>
>CommandButton1.activate でフォーカスが当たるように見えるのですが、そこでEnterキーを押すと、背後のワークシートのアクティブセルが移動するだけです。
>(CommandButtonのイベントは一切発生しません)
>
>どのようにしたら実現可能でしょうか。

ユーザーフォームで代用されては如何ですか。
ユーザーフォームにコマンドボタンを一つ張付けて
横幅はボタンと同じ幅で高さは小さく出来る限り小さく
(ボタンが隠れて見えないくらい)します。
フォームのShowModal プロパティをFalseにして下さい。

下記のコードをフォームモジュールに張付けてください。
ボタンを表示するタイミングはご自分で
駄目だったら読み棄ててください。

Option Explicit
Private Declare Function FindWindow Lib "user32.dll" _
              Alias "FindWindowA" _
              (ByVal lpClassName As String, _
              ByVal lpWindowName As String) As Long
              
Private Declare Function GetWindowLong Lib "User32" _
  Alias "GetWindowLongA" (ByVal hWnd As Long, _
  ByVal nIndex As Long) As Long
 
Private Declare Function SetWindowLong Lib "User32" _
  Alias "SetWindowLongA" (ByVal hWnd As Long, _
  ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
 
Private Declare Function DrawMenuBar Lib "User32" _
  (ByVal hWnd As Long) As Long

Const WS_CAPTION As Long = &HC00000
Const GWL_STYLE As Long = -16
Const WS_DLGFRAME = &H400000
Const WS_BORDER = &H800000

Private Sub CommandButton1_Click()
  MsgBox "ここに処理"
End Sub

Private Sub UserForm_Initialize()
  ' 非表示
 Dim hWnd As Long, lStyle As Long
 
 hWnd = FindWindow("ThunderDFrame", Me.Caption)
 lStyle = GetWindowLong(hWnd, GWL_STYLE)
 lStyle = lStyle And Not WS_CAPTION Or WS_BORDER
 SetWindowLong hWnd, GWL_STYLE, lStyle
 DrawMenuBar hWnd
End Sub

1 hits

【58391】シート上のコマンドボタンをEnterキーで yuka 08/10/23(木) 12:07 質問
【58394】Re:シート上のコマンドボタンをEnterキーで マクロマン 08/10/23(木) 12:59 発言
【58397】Re:シート上のコマンドボタンをEnterキーで yuka 08/10/23(木) 14:09 質問
【58396】Re:シート上のコマンドボタンをEnterキーで Jaka 08/10/23(木) 13:59 発言
【58402】Re:シート上のコマンドボタンをEnterキーで yuka 08/10/23(木) 15:49 お礼
【58403】Re:シート上のコマンドボタンをEnterキーで Yuki 08/10/23(木) 15:54 発言

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