- 締切済み
EXCEL VBA イベントプロシージャ
セルをダブルクリックすると反応するイベントプロシージャがありますが、これを特定のプロシージャ内でのみ反応させ、無用のときには反応させないということは可能でしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
元のご相談とは関係ないことをダラダラと後出しされても、おつきあいする義理はありません。 元のご質問には回答して納得も得られたようですので、そもそものアナタのヤリタイ事は、まずはアナタがご自分で考えて実装してください。 その上でまた新たな困った事が発生したのでしたら、別に丸投げで誰か作ってくださいでも構いませんが、それはそれで新しいご相談投稿として、質問を出しなおしてください。 「ついでにちょっと聞いちゃえ」で思いつきをちょこちょこっと書いているモノだから、 ○『取った』値を一体何にどう格納したいのか とか ○そもそも「最初にWクリックを格納」「次のWクリックで『取る』」 だとか、そういったヤリタイ事の段取りがまるで説明不足です。
- keithin
- ベストアンサー率66% (5278/7941)
>特定のプロシージャ内で 何を意図しているのか不明ですが、 private sub worksheet_beforedoubleclick(byval Target as excel.range, cancel as boolean) if 特定の条件 then ’実施する処理 end if end sub などのようにして、条件が見合った時のみ所定の処理を行いそれ以外はスルーにすることは簡単に出来ます。 もちろん if 特定の条件 then exit sub などのようにして抜けてしまっても、同じ結果が得られます。 たとえば private sub worksheet_beforedoubleclick(byval Target as excel.range, cancel as boolean) if target.address <> "$A$1" then exit sub msgbox "A1" cancel = true end sub
お礼
早々にご回答いただきましてありがとうございます。
補足
cells(1,"A")をダブルクリック、次にcells(3,"B")をダブルクリック。cells(3,"B")が「=""」なら、cells(1,"A")の値をコピーしてcells(3,"B")に貼り付け。cells(3,"B")が「<>""」ならcells(3,"B")の値を「1列目」に格納した配列変数の「2列目(数量)」に「1」を加算し、cells(1,"A")の値をコピーしてcells(3,"B")に貼り付け。以下「終了の条件」に到達するまで繰り返す。 というものです。詰め将棋をイメージしています。
お礼
ダラダラとおつきあいいただきましてありがとうございます。