- ベストアンサー
ダブルクリックをシングルクリックで?
- 私たちが使っているExcelのシートで、「セルをダブルクリックする度に○→/→×→空白と変更できる」というコードをアドバイスしていただきました。しかし、このコードをシングルクリックで変更することは可能でしょうか?
- Excelのシートで、ダブルクリックするたびにセルの値が「○→/→×→空白」と変更できるコードをアドバイスしてもらいました。しかし、このコードをシングルクリックでも同じように変更したいのですが、可能でしょうか?
- Excelのシートで、「ダブルクリックする度にセルの値が○→/→×→空白と変更される」というコードをアドバイスしてもらいました。でも、このコードをシングルクリックでも同じように使えるようにしたいです。可能でしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
隣の列のセルをボタンに見立てて操作するのはいかがでしょうか。 Accessのフォームで、行の数だけボタンが並ぶイメージです。 都度○等の入るセルにカーソルを移す事で、連続的にボタン?をクリックできる様にします。 あまり速くクリックすると、編集モードに入ってしまいますが、ご質問の趣旨からその心配はないかと思います。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) '例えばC列をクリックしたときだけ作動する様にする If Target.Column <> 3 Then Exit Sub '複数セルを選択したとき作動しない様にする If Target.Cells.Count > 1 Then Exit Sub 'B列の値を操作する Target.Offset(0, -1).Select Select Case Selection.Value Case "" Selection.Value = "○" Case "○" Selection.Value = "/" Case "/" Selection.Value = "×" Case "×" Selection.ClearContents Case Else Exit Sub End Select End Sub
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 コントロールパネル→マウス→ボタンタブのダブルクリックの速度を一番遅くしては如何でしょうか。
お礼
mu2011さんありがとうございます! あ!?そういう手もあったんですね… 早速明日会社で試してみます。 上手くいくかな~
- Randomize
- ベストアンサー率70% (38/54)
本当を言うとExcelでそのままではできないのですが、条件付であればできない事はないです。 1行目の Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) を Private Sub Worksheet_SelectionChange(ByVal Target As Range) に書き換えてあげるとできます。 ただし、条件付きといいました。その条件は、ダブルクリックと右クリックの場合は同じセルを何度もつつくことで連続してマークを変更できるのに対して、シングルクリックの場合は「一度目的のセル以外へ移動した後目的のセルをつつかなければならない」と言うことです。 VBAを実行できるマウスによる起動操作(このことをイベントと呼びます)には BeforeDoubleClick:ダブルクリックされる寸前 BeforeRightClick:右クリックされる寸前 の2個しかありません。そして先ほどのSelectionChangeは「選択しているセルが変わった時」になる為、同じセルを何度つついてもマークは連続して変わらないのです。 余談ですが、文字通り本当に強引に行けば同じセルを複数回左クリックで連続してマークを変更させることもできないことはないのかもしれませんが、初心・初中級者の人には手に負えないほど高度かつリスクを伴う作業になります。 ですので、この条件付きの条件が呑めない場合は右クリックかダブルクリックでの運用を検討することをお勧めします。 ちなみに右クリックにする場合は1行目を Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) に書き換えてください。
お礼
Randomizeさんありがとうございました! 次々と連続して同じ記号を入力して行くのにイイですね!?コレ!? 凄く参考になりました! 別の入力シートに活用できそうです。 また是非アドバイスをお願いします!ヽ(´ー`)ノ ありがとうございました!
- LHS07
- ベストアンサー率22% (510/2221)
Case "A" Target ="B" はAならBにするということです。 辞書を引いてみてください。Case と Target 以下ならどうでしょうか Case "" Target = "○" Case "○" Target = "/" Case "/" Target = "×" Case "×" Target.ClearContents Case Else 試してみてください。
お礼
LHS07さんありがとうございました! ん~~なんか私の頭が悪いのでしょうが上手く行きませんでした (´Д⊂グスン また是非アドバイスをお願いします。 ありがとうございました!
- imogasi
- ベストアンサー率27% (4737/17069)
回答をコピペするだけで、回答の本当の内容を理解できてないから、同じような質問を繰り返すのだ。 質問することに無理が合ったのだろう。 イベントのことを勉強するのが先だ。 VBAなどを勉強を始めた程度で何何したいといっても、そうなる。 ーー シングルクリックは、他のことでも、使われていて、紛らわしいからだろう、そういうのはシートのイベントにない。 シートのイベントの1覧の見方ウィ御勉強すること。そこにない。 それ以上のことは非常にVBA以外の勉強が進んでからのことで、質問者には無理。 ーー 右クリックなら在る。Sheet1のシート・イベントに Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) MsgBox "CCC" End Sub
お礼
imogasiさんいつもありがとうございます。 >回答をコピペするだけで、回答の本当の内容を理解できてないから、同じような質問を繰り返すのだ。 (つд⊂)エーン 職場の超高齢者オペレーター2人が「ダブルクリックが出来ない」って言うんですよぉ (つд⊂)エーン 見てると「カ・チ……カ…チ……」みたいな… そんな訳でクリック1回で出来たらなーと思った次第です (;^ω^) また懲りずにアドバイスして下さい!ありがとうございました。
お礼
mitarashiさんありがとうございます! 私も御手洗団吾大好きですよ (^O^) 早速使ってみました。 コレも凄く便利ですね!?色々なところで活用出来そうです。 >ご質問の趣旨からその心配はないかと思います。 お気遣いありがとうございます(;^ω^) なにぶん高齢で色々と簡略化してあげたいので… また是非アドバイスをして下さい。 ありがとうございました!m(__)m