- ベストアンサー
Excelでセルをクリックした時にマクロを起動する方法
- Excelのセルをクリックした時に特定のマクロを自動的に起動する方法を解説します。
- 条件として、C3〜C5のいずれかのセルをクリックする動作が必須です。
- マクロを設定することで、セルクリック時のイベントをトリガーとして別のマクロを実行させることができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
selectionchangeイベントは「セルをクリックしたイベント」では無いので,どうやっても無理があるのは承知ですね。 シングルクリックではなくWクリックイベントを利用する方向に,設計変更することを推奨します。 で。今の限界の中でそれでもどーにかしてみるなら。 作成例: 「コピーペースト」の具体的な内容が不明のため,たとえばA1:A3の値をC3,4,5に転記する sub macro1() range("C3:C5").value = range("A1:A3").value range("A1").select end sub そのマクロによって「C3,4,5以外のセル」を選択しておいてから,C3,C4,C5の選択動作に移行する private sub worksheet_selectionchange(byval Target as excel.range) if application.intersect(activecell, range("C3:C5")) is nothing then exit sub if activecell.row = 3 then personC3 if activecell.row = 4 then personC4 if activecell.row = 5 then personC5 end sub さらにPersonC3,4,5実行後はまたA1セルに積極的に待避し,次の選択動作に備える sub personC3() ’do your work range("A1").select end sub sub personC4() ’do your work range("A1").select end sub sub personC5() ’do your work range("A1").select end sub
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
1)「(1)を実行した後に」どこかのセルにでもフラグを立てておきます。 2)「その文字列がクリックされたら」そのフラグを参照して、「(2)のマクロが有効」になります。 3)「(2)のマクロが有効」になった後には、「どこかのセル」に立てたフラグは無効にしておきます。 要するに、 ・「sheet1のC3,C4,C5セルに、ある文字列をコピーペーストするマクロ」で、「どこかのセル」に立てたフラグを参照する ・「(2)のマクロが有効」になった後には、「どこかのセル」に立てたフラグは無効にする という条件を付けておくということです。
お礼
回答ありがとうございます。大変参考になりました。
お礼
回答ありがとうございます。おもった通りの動作が実現できました(^^)/~~~