質問: シングルクリックとダブルクリックのイベントについて 皆さん、こんばんは。 ちょっと疑問に感じたものがありましたので質問させてください。 今日のある質問、 内容はセルをシングルクリックした場合と ダブルクリックした場合のイベントの違い。 その質問に対する次の回答について。 (1)両方のイベントを機能させるとselectionchangeが先になり その後、同セルwクリックでdoubleclickイベントが機能します (2)selectionchange のシングル・クリックとbeforedoubleclickの ダブル・クリックとはダブル・クリックの過程にシングル・クリック があるので、論理的に、そのイベントは重なってシングル・クリックに 取られるはずです」 (1)はたぶん回答者の勘違いだろうと思うのでそれはいいのですが、 疑問に感じたのは(2)の方です。 (2)の意味は、ダブルクリックすると必ずシングルクリック 即ちselectionchangeイベントのみが発生し、 beforedoubleclickは発生しないということでしょうか いままでbefordoubleclickも発生する場合があると思っていましたので質問しました。 回答者がvba熟知の方なので当方が何か勘違いしているのかも知れませんが・・・。 以上宜しくお願いいたします。
回答: vbaに精通してませんが、、、 そもそも、selectionchange は シングルクリックを拾う処理では無いですよね? selection が change していなければ、クリックしても発生しませんから。 a1を選択した状態で、a1をクリックしても selectionchange は呼ばれません。 a1を選択した状態で、a1をダブルクリックをするとbeforedoubleclickが呼ばれます。 a1を選択した状態で、c1をダブルクリックすると、selectionchange → beforedoubleclick の順にイベントが発生します。 private sub worksheet_selectionchange(byval target as range) debug.print "selection: " & target.address end sub private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean) debug.print "doubleclick: " & target.address end sub