• 締切済み

《VBA》セルをダブルクリックしたときのイベント

Worksheet/BeforeDoubleClickを使用して、 フォームを表示するという処理を行っています。 エクセルのセルにリストボックスが設定されているセルがあるのですが、 リストボックスのセルをダブルクリックした時にはイベントが動作しません。 通常のセルをダブルクリックした時にはイベントは正常に動作します。 リストボックスが設定されているセルでは動作することができないのでしょうか。

みんなの回答

  • queuerev2
  • ベストアンサー率78% (96/122)
回答No.1

こちらで試した限りでは、ちゃんとイベントが動作しました。 環境は、Windows XP, Excel 2003で、 リストボックスは、フォームのものとコントロールツールボックスのものの両方についてやってみました。 リストボックスにはVBAは設定しておらず(つまりフォームのものにはマクロを登録せず、コントロールツールボックスのものはコードを入力しておらず)、1列3行のセル範囲の値をリストボックス内に表示し、それをクリックするとリンクしているセルに結果が表示されるだけとしました。 起動するイベントのコードはこれだけです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Range("a1").Value = Range("a1").Value + 1 'イベント発生回数を数える UserForm1.Show 'これは空のフォーム End Sub リストボックスの中に表示するデータが入っているセルや結果がリンクしているセルを含めて、どこのセルでもちゃんとダブルクリックすれば上記のコードが実行されました。 上記のコードが実行されなかったのは、デザインモードに入っている時や、セルがリストボックスにほとんど隠れてしまってうまくダブルクリックできなかった時くらいです。 質問者様の状況をもう少し詳しくお聞きすることができれば何か回答できるかもしれませんので、さらなる回答をご希望であれば補足をお願い致します。 (特に、「設定されている」というのが具体的に理解できずにおります)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ダブルクリックイベント

    シート数がかなり多数のエクセルファイルがあるのですが、全てのシートにダブルクリックイベントを適用させたいと思っています。 Worksheet_BeforeDoubleClickのコードを、全シート分まとめて記述することは可能でしょうか?

  • シートのクリックイベントは拾えないのか?

    ExcelのVBAに関する質問です。 さきほど「セルをクリック、またはダブルクリックしたときに○○したい」という質問に回答したのですが、「セルをクリックした」というイベントを拾う方法がわからず、ダブルクリックのパターンで回答しました。 Worksheetのイベントには BeforeDobuleClick や BeforeRightClick はあるのに Click や onClick というイベントがありません。オートシェイプなどのオブジェクトやフォーム上のオブジェクトには Click イベントがあるのですが、Worksheet になぜかありません。 これまでも同様のケースがあり、ネットで検索したりしたのですが、どれも SelectionChange で代用するものでした。それだと確かにマウスで別セルを選択したときにイベントが発生しますが、 ・キーボード操作でセルを移動してもイベントが発生する ・現在選択しているセルをクリックしてもイベントが発生しない と、厳密はマウスでクリックしたときと同じ動作になりません。 確か以前の質問で「あるセルをクリックするたびに、他のセルの値をカウントアップしたい」というようなものもありました。このような場合には、やはり Click に相当するようなイベントで処理したいです。 どうにかしてWorksheetでクリックイベントを拾うことはできないのでしょうか?

  • セルに貼り付けた画像の上からダブルクリックを機能させたい

     エクセルの各セルの上に写真を貼り付けています。 このとき写真の上からダブルクリックしても Worksheet_BeforeDoubleClick 等が働きません。  これを働かせる方法を教えてください。 よろしくお願いします。

  • シングルクリックとダブルクリックのイベントについて

    皆さん、こんばんは。 ちょっと疑問に感じたものがありましたので質問させてください。 今日のある質問、 内容はセルをシングルクリックした場合と ダブルクリックした場合のイベントの違い。 その質問に対する次の回答について。 (1)両方のイベントを機能させるとSelectionChangeが先になり  その後、同セルWクリックでDoubleClickイベントが機能します (2)SelectionChange のシングル・クリックとBeforeDoubleClickの  ダブル・クリックとはダブル・クリックの過程にシングル・クリック  があるので、論理的に、そのイベントは重なってシングル・クリックに  取られるはずです」 (1)はたぶん回答者の勘違いだろうと思うのでそれはいいのですが、 疑問に感じたのは(2)の方です。 (2)の意味は、ダブルクリックすると必ずシングルクリック 即ちSelectionChangeイベントのみが発生し、 BeforeDoubleClickは発生しないということでしょうか いままでBeforDoubleClickも発生する場合があると思っていましたので質問しました。 回答者がVBA熟知の方なので当方が何か勘違いしているのかも知れませんが・・・。 以上宜しくお願いいたします。

  • 「セルをダブルクリックしたら」イベント VBA

    エクセルのシートのイベントで、「セルをダブルクリックしたら」 というのはないですか? ここになければないのでしょうか?

  • エクセル マクロ ダブルクリックのイベント

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As range) というマクロをしても動きません。どうしてでしょうか? 他のsheetchaneとかのマクロは動くのですが・・ (ダブルクリックしてもセルが入力可能な状態になるだけです)

  • サブフォームでのダブルクリックイベント

    Access2003です。 フォームにサブフォームを設置し、直接テーブルを表示させています。 このサブフォームのテーブルのある行をダブルクリックしたら その行のデータを他のフォームのオブジェクトにセットしたいのですが 行や行のデータ全てを取得は出来るのですが、サブフォームのイベントがEnterとExitしかなくて、イベント発生が出来ません。 フォームのダブルクリックでXとYを見て…と思ったのですがサブフォーム上ではフォームのダブルクリックイベントが発生せず。 サブフォームのテーブルはユーザーがソートする事もあるのでベタに上にテキストボックス等を置く事は出来ません。 どうにかダブルクリックで動作させる方法はありませんでしょうか?

  • ダブルクリックイベントで良いのかどうか?

    お世話になります。 ダブルクリックイベントで、そのセルを赤く色を塗り、尚且つ、 そのセルをダブルクリックした事により、別のワークブックを開き、 また、開いたワークブックのシートの中からある単語を検索して その属性を現在アクティブにしている、ブックのシートに記入しよう としていますが、 まず、下記の様に、ダブルクリックイベントで、セルを赤く塗るまではうまくいったのですが、別のブックを開く事がうまく出来ません。 記述が悪いのか、または標準モジュールに記述するべきなのか分からなく困っています。 どなたかご教授頂きたく宜しくお願い申し上げます。        記 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim Rng As Range, myRng As Range Set Rng = Range("c2:d2,f2") Set myRng = Intersect(Target, Rng) If myRng Is Nothing Then Exit Sub Rng.Interior.ColorIndex = xlColorIndexNone myRng.Interior.ColorIndex = 3 Cancel = True If Intersect(Target, Range("c2")) Then Workbooks.Open Filename:="C:\Documents and Settings\Owner\デスクトップ\台帳.xls" End If End Sub

  • Excelのセルをダブルクリックした時のマクロ

    BeforeDoubleClickイベントで、特定のセルをクリックした場合にマクロを実行する方法についての質問です。 例えば セルC1をダブルクリックするとマクロAが実行 セルC2ををダブルクリックするとマクロBが実行 セルC3ををダブルクリックするとマクロCが実行 と、複数のイベントにそれぞれのマクロを実行させたい場合はどうすればよいのでしょうか。 詳しい方がいましたらアドバイス頂けないでしょうかm(_ _ )m

  • Excel セル境界をダブルクリックで連続データの末尾移動 イベント取得は可能?

     Excel(2002)で連続して並んでいるデータの中で、アクティブセルの境界(カーソルが上下左右の矢印に変わるところ)をダブルクリックすると、ちょうどEndキー+↑↓←→を押したように、連続データの末尾にアクティブセルが移動します。(私10年近くExcelを使っていましたが、この機能は今日初めて知りました。)  で、このダブルクリックの機能をトラップすることは可能でしょうか。Worksheet_BeforeDoubleClickイベントでは捕まえられないようですが。